• ElasticSearch常用查询


    删除索引
    DELETE /indexname
    
    删除多个索引
    DELETE /index_one,index_two
    DELETE /index_*
    
    删除全部索引
    DELETE /_all
    
    查看分词
    GET _analyze
    {
      "tokenizer" : "ik_smart",
      "text" : "北京冬奥会开幕式"
    }
    
    查看分词,加过滤器
    GET _analyze
    {
      "tokenizer" : "ik_smart",
      "filter": [{"type": "length", "min":1, "max":3 }],  
      "text" : "北京冬奥会开幕式"
    }
    
    查看分词
    POST _analyze
    {
      "char_filter": [], 
      "tokenizer": "ik_smart",
      "filter": [
        "stop"
      ],
      "text": "北京冬奥会开幕式"
    }
    
    
    查看某个索引的字段类型
    GET indexname/_mapping
    
    查看所有索引信息
    GET _cat/indices?v
    
    修改字段映射,将title字段修改为可以创建分词,detail字段修改为不可以创建分词
    PUT indexname
    {
      "mappings":{
        "properties":{
          "title":{
            "type":"text"
          },
          "detail":{
            "type":"keyword"
          }
        }
      }
    }
    
    添加数据
    put /indexname/_doc/1
    {
       "title":'全文索引',
       "description":"描述",
        "createtime":"2022-03-02"
    }
    
    添加数据(相同ID重复添加就是替换)
    post /indexname/_doc/1
    {
       "title":'全文索引',
       "description":"描述",
        "createtime":"2022-03-02"
    }
    
    局部更新,替换
    post /indexname/_doc/1/_update
    {
      "doc":{
          "title":"修改全文索引"
        }
    }
    
    局部更新,在字段原值的基础上增加计数器,此方式打开on_conflict可以避免多线程同时修改
    post /indexname/_doc/1/_update
    {
      "script":{
          "source":"ctx._source.counter +=  params.count",
           params:{
              count =1
          }
        }
    }
    
    删除单条数据
    delete /indexname/_doc/3011
    
    获取全部数据
    GET /indexname/_search
    {
      "query": {"match_all": {}}
    }
    
    获取全部数据,返回前20条数据
    GET /indexname/_search
    {
      "query": {"match_all": {}},
      "size": 20,
    }
    
    获取全部数据,返回第20到第30条数据
    GET /indexname/_search
    {
      "query": {"match_all": {}}
      "from": 20,
      "size": 10,
    }
    
    根据price字段降序
    GET /indexname/_search
    {
      "query": {"match_all": {}}
      "from": 20,
      "size": 10,
      "sort": {"price": {"order": "desc"}}
    }
    
    只返回 price和title两个字段,并按价格排序,分页获取文档
    GET /indexname/_search
    {
      "query": {"match_all": {}}
      "from": 20,
      "size": 10,
      "sort": {"price": {"order": "desc"}},
      "_source": ["price", "title"]
    }
    
    按title搜索,只返回 price和title两个字段,并按价格排序,分页获取文档
    GET /indexname/_search
    {
      "query": {
         "match": {
            "title":"旗靓手机"
          }
        }
      "from": 20,
      "size": 10,
      "sort": {"price": {"order": "desc"}},
      "_source": ["price", "title"]
    }
    
    
    返回price=100的数据
    GET /indexname/_search
    {
      "query": {"match": {"price": 100}}
      "from": 20,
      "size": 10,
      "sort": {"price": {"order": "desc"}}
    }
    
    返回info包含北京的数据
    GET /indexname/_search
    {
      "query": {"match": {"title": "北京"}}
      "from": 20,
      "size": 10,
      "sort": {"price": {"order": "desc"}}
    }
    
    返回info包含北京 or 奥运会的数据
    GET /indexname/_search
    {
      "query": {"match": {"title": "北京 奥运会"}}
      "from": 20,
      "size": 10,
      "sort": {"price": {"order": "desc"}}
    }
    
    
    
    查询匹配短语="北京 冬奥会"
    GET /indexname/_search
    {
      "query": {"match": {"title": "北京 奥运会"}}
      "from": 20,
      "size": 10,
      "match_phrase": {"title": "北京 冬奥会"}
    }
    
    布值值查,指定ik分词查询title包含北京的数据
    GET /indexname/_search
    {
      "query": {
        "bool": {
           "must": [
                {"match": {"title" : {"query":"北京", "analyzer": "ik_max_word"}} } 
            ]
        }
      }
    }
    
    布值值查询同时满足多条件
    GET /indexname/_search
    {
      "query": {
        "bool": {
           "must": [
                {"match": {"title" : "北京"} } ,
                {"match": {"age" : 20} } 
            ]
        }
      }
    }
    
    布值值查询满足其中任意一个条件
    GET /indexname/_search
    {
      "query": {
        "bool": {
           "should": [
                {"match": {"title" : "北京"} } ,
                {"match": {"age" : "20"} } 
            ]
        }
      }
    }
    
    不区配info=北京 & info=冬奥会
    GET /indexname/_search
    {
      "query": {
        "bool": {
           "must_not": [
                {"match": {"info" : "北京"} } ,
                {"match": {"info" : "奥运会"} } 
            ]
        }
      }
    }
    
    
    不区配title=北京 & id!=50
    GET /indexname/_search
    {
      "query": {
        "bool": {
           "must_not": [
                {"match": {"title" : "北京"} } 
            ],
           "must_not": [
                {"match": {"id" : 50} } 
            ]
        }
      }
    }
    
    范围查询
    POST /indexname/_search
    {
      "query": {
        "bool": {
            "must":     { "match": { "age": 20 }},
            "filter": {
              "range": {
                "balance": {
                    "gte": 20000,
                    "lte": 30000
                  }
                } 
            }
        }
      }
    }
    
    
    范围查询
    POST /indexname/_search
    {
      "query": {
        "bool": {
            "must":     { "match": { "age": 39 }},
            "must_not": { "match": { "employer":"Digitalus" }},
            "filter": {
              "range":  { 
                "balance":  {
                    "gte": 20000,
                    "lte": 30000
                  }
                } 
            }
        }
      }
    }
    
    精确查询,必须完全匹配
    GET /indexname/_search
    {
        "query":{
          "term":{
            "title":"我爱你枣500克装"
          }
        }
    }
    
    多条件精确查询,任意条件精确匹配
    GET /indexname/_search
    {
        "query":{
          "bool":{
            "should":[
              {
                "term":{
                   "title":"我爱你枣500克装"
                }
              },{
                "term":{
                   "price":"26.5"
                }
              }
            ]
          }
        }
    }
    
    多条件精确查询,多条件必须完全匹配
    GET /indexname/_search
    {
        "query":{
          "bool":{
            "must":[
              {
                "term":{
                   "title":"我爱你枣500克装"
                }
              },{
                "term":{
                   "price":"26.5"
                }
              }
            ]
          }
        }
    }
  • 相关阅读:
    ORA16014 与 ORA00312
    ORA26687
    ORA32004问题解决
    ORA23616:执行块5失败
    Streams实践之Schemas级复制
    Streams FAQ
    ORA23622: 正在执行操作SYS.DBMS_STREAMS_ADM.MAINTAIN_GLOBAL
    为什么白帽SEO更好?
    HyperV虚拟机安装及网卡无法找到,驱动无法安装解决办法
    Memcahed分布式缓存服务替换Session解决方案——简单介绍[转]
  • 原文地址:https://www.cnblogs.com/yyee/p/15936399.html
Copyright © 2020-2023  润新知