当前位置:   article > 正文

ElasticSearch 实战:ES查询索引文档的6种方法_es查看所有索引

es查看所有索引

Elasticsearch中,查询索引文档的方法多种多样,这里列举了6种常见的查询方法,其中包括:

  1. 简单查询(String Query)

    • 这是最基本的全文搜索,只需在URL后面附加查询字符串即可。例如,对索引my_index中的所有文档执行模糊匹配查询:
    GET my_index/_search
    {
      "query": {
        "match": {
          "field_name": "your_search_term"
        }
      }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
  2. Match Query

    • 类似于简单查询,但提供了更多的控制选项,比如精确匹配、模糊匹配等。例如:
    GET my_index/_search
    {
      "query": {
        "match": {
          "title": {
            "query": "search term",
            "operator": "and" // or "or" for a more relaxed matching
          }
        }
      }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
  3. Term Query

    • 用于精确匹配字段的特定值,尤其是在非分析字段上。
    GET my_index/_search
    {
      "query": {
        "term": {
          "status.keyword": "active" // 使用.keyword后缀避免对非分析字段进行分词
        }
      }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
  4. Bool Query

    • 复合查询,允许组合多个查询条件,包括must(必须满足)、should(最好满足)、must_not(必须不满足)等子句。
    GET my_index/_search
    {
      "query": {
        "bool": {
          "must": [
            { "match": { "title": "search term" } },
            { "range": { "date": { "gte": "2022-01-01" } } }
          ],
          "must_not": [
            { "term": { "status": "archived" } }
          ]
        }
      }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
  5. Range Query

    • 用于查询字段值在某个范围内的文档。
    GET my_index/_search
    {
      "query": {
        "range": {
          "age": {
            "gte": 18,
            "lte": 65
          }
        }
      }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
  6. Aggregation Queries

    • 聚合查询不是用来寻找特定文档的,而是用来做数据汇总统计。例如,计算某个字段的不同值的数量,或者按字段值分组统计数据。
    GET my_index/_search
    {
      "aggs": {
        "age_buckets": {
          "terms": {
            "field": "age",
            "size": 10
          }
        }
      }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11

以上是Elasticsearch中几种基本的查询方式,实际上还有更多的查询类型和组合方式,如Wildcard Query、Prefix Query、Fuzzy Query、Regexp Query等等,可以根据实际需求选择合适的查询方法。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小丑西瓜9/article/detail/389971
推荐阅读
相关标签
  

闽ICP备14008679号