首页 > 解决方案 > Elasticsearch - 按字段搜索但区分另一个字段

问题描述

我的意思是相当于这个 SQL 查询:

SELECT distinct fieldA
from DB
where fieldB like '%value%'

弹性搜索中此查询的术语聚合是什么?

标签: elasticsearch

解决方案


您可以将通配符查询与术语聚合结合使用,以获取字段的不同值。

您可以使用以下查询来获取结果。

POST test/_search
{
  "query": {
    "wildcard": {
      "fieldB": {
        "value": "*ali*"
      }
    }
  },
  "aggs": {
    "distinct_fieldA": {
      "terms": {
        "field": "fieldA",
        "size": 10
      }
    }
  }
}

希望这有效


推荐阅读