• elasticSearch之查询


    
    

    "you know, for search“”,这是es的口号,所以es最核心的功能就是查询,es中查询简单来说有两种:

    1.子条件查询:即特定字段查询所指特定值。子条件查询又分为query context和filter  content

        query content:在查询过程中,除了判断文档是否满足条件外,还会计算一个_score来标识匹配的程度,旨在判断目标文档和查询条件匹配的有多好

              query content又包括全文本查询(针对文本类型数据)和字段级别的查询(针对结构化数据,如数字,日期)

    以下为全文本查询:

    模糊匹配:结果会返回包含“ElasticSearch”,"入门",“ElasticSearch入门”这三个关键词的信息

    {
         “query”:{
             "match":{
                      "title":"ElasticSearch入门"
                }          
        } 
    }
    

     但是如果我只想查询包含“elasticSearch入门”这个关键词的信息,就用到习语查询

    {
         “query”:{
             "match_phrase":{
                      "title":"ElasticSearch入门"
                }          
        } 
    }
    

      多个字段的查询:会查询出author和title中包含elasticSearch的信息

    {
         “query”:{
             "multi_match":{
                      "query":"elasticSearch"
                      "fields":["author","title"]
                }          
        } 
    }    
    

     语法查询:查询条件遵循某种语法,如下返回包含“elasticSearch”和”入门”或者包含“python”的内容

    {
         “query”:{
             "query_string":{
                     "query":"(elasticSearch AND 入门) OR python"
            }         
        } 
    }    
    

      以下为字段查询:

          查询作者是张三的书籍

    {
         “query”:{
             "term":{
                      "author":"张三"
                }          
        } 
    }
    

      查询word_count字段在1000到2000的书籍

     

    {
         “query”:{
             "range":{
                  "word_count":{
                        "gte":1000,
                        "lte":2000
                          }
                }          
        } 
    } 
    

      

     filter content:在查询过程中,只判断改文档是否满足条件,只有Yes或者No,es会对filter查询结果做缓存,所以更快些

          以下返回“word_count”为1000的书籍

      

    {
         “query”:{
             "bool":{
                  "filter":{
                        "term":{
                                  "word_count":1000    
                             }
                          }
                }          
        } 
    } 
    

      

       

  • 相关阅读:
    BZOJ3732: Network(Kruskal重构树)
    AtCoder Beginner Contest 103
    2018.7.21NOIP模拟赛?解题报告
    PE刷题记
    杜教筛入门
    浅谈积性函数的线性筛法
    BZOJ4916: 神犇和蒟蒻(杜教筛)
    BZOJ2818: Gcd(莫比乌斯反演)
    LD1-B(最短路径-SPFA)
    UVa 10837 A Research Problem 欧拉函数
  • 原文地址:https://www.cnblogs.com/team42/p/8342274.html
Copyright © 2020-2023  润新知