助你掌握搜索神器,10个实用的Elasticsearch查询技巧

前言

  Elasticsearch是一个十分盛行的搜索引擎,已经成为了许多企业的首选解决方案。然而,咱们要想成为一个优异的程序员,就必须掌握各种查询技巧。本文将向咱们介绍10个实用的Elasticsearch查询技巧,并配上对应的代码示例,协助咱们更好地掌握Elasticsearch的查询语法。

示例

1. 匹配多个词语:

运用 bool 查询和 must 子句能够匹配多个词语。例如,匹配同时包括“apple”和“banana”的文档:

{
  "query": {
    "bool": {
      "must": [
        { "match": { "text": "apple" }},
        { "match": { "text": "banana" }}
      ]
    }
  }
}

2. 匹配某个字段中的恣意一个词:

运用 terms 查询和字段名能够匹配某个字段中的恣意一个词。例如,匹配 title 字段中包括“apple”或“banana”的文档:

{
  "query": {
    "terms": {
      "title": ["apple", "banana"]
    }
  }
}

3. 匹配某个字段中的词语前缀:

运用 prefix 查询和字段名能够匹配某个字段中的词语前缀。例如,匹配 title 字段中以“app”最初的文档:

{
  "query": {
    "prefix": {
      "title": "app"
    }
  }
}

4. 匹配某个字段中的词语通配符:

运用 wildcard 查询和字段名能够匹配某个字段中的词语通配符。例如,匹配 title 字段中包括“app”或“ban”的文档:

{
  "query": {
    "wildcard": {
      "title": "*app* OR ban*"
    }
  }
}

5. 匹配某个字段中的词语含糊匹配:

运用 fuzzy 查询和字段名能够进行词语含糊匹配。例如,匹配 title 字段中类似于“aple”的文档:

{
  "query": {
    "fuzzy": {
      "title": "aple"
    }
  }
}

6. 匹配某个字段中的词语范围:

运用 range 查询和字段名能够匹配某个字段中的词语范围。例如,匹配 price 字段在 10 到 100 之间的文档:

{
  "query": {
    "range": {
      "price": {
        "gte": 10,
        "lte": 100
      }
    }
  }
}

7. 匹配某个字段中的词语存在与否:

运用 exists 查询和字段名能够匹配某个字段中的词语是否存在。例如,匹配包括 description 字段的文档:

{
  "query": {
    "exists": {
      "field": "description"
    }
  }
}

8. 依照某个字段排序:

运用 sort 参数能够依照某个字段进行排序。例如,依照 score 字段从高到低排序:

{
  "query": {
    "match_all": {}
  },
  "sort": [
    { "score": "desc" }
  ]
}

9. 回来某些字段的部分数据:

运用_source 参数能够回来某些字段的部分数据。例如,只回来 title 和 price 字段的数据:

{
  "query": {
    "match_all": {}
  },
  "_source": ["title", "price"]
}

10. 进行分页操作:

运用 from 和 size 参数能够进行分页操作。例如,回来第 11-20 条数据:

{
  "query": {
    "match_all": {}
  },
  "from": 10,
  "size": 10
}

结尾

  假如觉得对你有协助,能够多多谈论,多多点赞哦,也能够到我的主页看看,说不定有你喜欢的文章,也能够顺手点个关注哦,谢谢。

  我是不一样的科技宅,每天进步一点点,体验不一样的生活。咱们下期见!