json - Elasticsearch :在一个查询中进行多项搜索

标签 json elasticsearch elasticsearch-5

ElasticSearch的新功能。

我在带有映射的Elastic搜索中的index:myindex下有文档:
http://host:port/myindex/_mapping

{
"mappings":{
   "properties": {
        "en_US":  {
             "type": "keyword"
                  }
                 }
          }
}

假设我的3个文档如下所示:
{
"product": "p1",
"subproduct": "p1.1"
}

{
"product": "p1",
"subproduct": "p1.2"
}

{
"product": "p2",
"subproduct": "p2.1"
}

现在,我正在查询将单个子产品p1.1与产品p1一起使用,如下所示,它工作正常:

POST:http://host:port/myindex/_search
{
  "query": {
    "bool" : {
      "must" : {
        "term" : { "product" : "p1" }
      },
      "filter": {
        "term" : { "subproduct" : "p1.1" }
      }
    }
  }
}

我的问题是:
如何在一个_search查询中查询2个或多个子产品,例如产品p1.1下的suproducts p1.2p1
查询应返回所有带有p1.1产品的子产品p1.2和子产品p1的列表。

最佳答案

只需将过滤器子句中的term -query更改为terms -query并搜索多个术语。

{
  "query": {
    "bool" : {
      "must" : {
        "term" : { "product" : "p1" }
      },
      "filter": {
        "terms" : { "subproduct" : ["p1.1", "p1.2"] }
      }
    }
  }
}

关于json - Elasticsearch :在一个查询中进行多项搜索,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60444465/

相关文章:

json - 结合类型和字段序列化器

java - 在独立的 Java 控制台应用程序中托管 JSON REST Web 服务

performance - 用不同的Java堆进行Elasticsearch,这有关系吗?

elasticsearch - 仅获取按某个字段汇总/分组的最新Elasticsearch文档的总和

elasticsearch - ELK 5.3上的Lucene语法

elasticsearch - Elasticsearch索引恢复

elasticsearch - 如何在 Elasticsearch 中匹配具有可扩展前缀和后缀的短语?

java - 如何从json树反序列化?

json - Play Framework : Request_denied when getting json from googlemap url

Elasticsearch Map 对 not_analyzed 文档不区分大小写