美文网首页ES
Elastic Search

Elastic Search

作者: lixwcqs | 来源:发表于2017-12-18 22:53 被阅读8次

    类比关系型数据库

    类比关系型数据库

    DSL(Domain Specific Language特定领域语言)语法

    查询表达式

    查询格式

    • 一个查询子句一般使用这种结构:
    {
      QUERY_NAME: {
          ARGUMENT: VALUE,
          ARGUMENT: VALUE,...
      }
    }
    
    • 指向一个指定的字段:
    {
      QUERY_NAME: {
        FIELD_NAME: {
          ARGUMENT: VALUE,
          ARGUMENT: VALUE,...
        }
      }
    }
    

    1. 叶查询子句(Leaf query clauses)

    它们在特定字段中查找特定值

    2. 复合查询子句(Compund query clauses)

    这些查询是叶查询子句和其他复合查询的组合,用于提取所需的信息。

    两种结构化语句

    过滤语句

    • term
      term 主要用于精确匹配哪些值,比如数字,日期,布尔值或 not_analyzed 的字符串(未经分析的文本数据类型)。
    { "term": { "age": 26 }}
    { "term": { "date": "2014-09-01" }}
    { "term": { "public": true }}
    { "term": { "tag": "full_text" }}
    
    • terms
      terms 跟 term 有点类似,但 terms 允许指定多个匹配条件。 如果某个字段指定了多个值,那么文档需要一起去做匹配:
    {
      "terms": {
        "tag": [ "search", "full_text", "nosql" ]
      }
    }
    
    • range
      范围查找,操作符包含:
      • gt :: 大于
      • gte :: 大于等于
      • lt :: 小于
      • lte :: 小于等于
    {
      "range": {
         "age": {
         "gte": 20,
         "lt": 30
        }
      }
    }
    
    • exists 和 missing
      exists 文档中包含指定字段, missing 文档中没有包含某个字段,类似于SQL语句中的 IS_NULL 条件
    {
        "exists": {
            "field": "title"
        }
    }
    

    这两个过滤只是针对已经查出一批数据来,但是想区分出某个字段是否存在的时候使用

    • bool
      合并多个过滤条件查询结果,包含操作符:
      • must :: 多个查询条件的完全匹配,相当于 and 。
      • must_not :: 多个查询条件的相反匹配,相当于 not 。
      • should :: 至少有一个查询条件匹配, 相当于 or 。
    {
        "bool": {
            "must": { "term": { "folder": "inbox" }},
            "must_not": { "term": { "tag": "spam" }},
            "should": [
                { "term": { "starred": true }},
                { "term": { "unread": true }}
            ]
        }
    }
    

    查询语句

    • match_all
      查询到所有文档,是没有查询条件下的默认语句。
    {
       match_all:{}
    }
    
    • match

    查询关注的是相关性,而过滤关注为是否符合条件。
    一般使用查询语句做全文本搜索或其他需要进行相关性评分的时候,剩下的全部用过滤语句

    相关文章

      网友评论

        本文标题:Elastic Search

        本文链接:https://www.haomeiwen.com/subject/xvsvwxtx.html