Elastic Search

类比关系型数据库

类比关系型数据库

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

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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 此文是关于elasticsearch in action书部分重点读书笔记。 Chapter 2 Diving i...
    shamumu阅读 2,587评论 0 1
  • 最近产品需要一个搜索商城中的商品的功能,于是接触了一下Elastic Search。虽然久仰它的大名,但一直都没有...
    Liutos阅读 1,433评论 0 18
  • Advantages of using elastic search Build on top of lucene...
    xianyu阅读 433评论 0 2
  • 6.10分起床睡了6.30小时,现在很累啊,睁不开眼了 洗衣服洗的指头疼,刚剪了指甲,有点短 想见高一钦,没有见...
    宋长金j阅读 235评论 0 1
  • 2017.6第12篇 星期一 晴 今天周一了,早上儿子和同学一块兴高采烈的去上学了,美好的一天开始了,希望...
    鑫隆妈妈阅读 95评论 0 0