【问题标题】:Combine separate queries in elasticsearch在弹性搜索中组合单独的查询
【发布时间】:2012-11-01 13:25:02
【问题描述】:

我有两个搜索词“86746184549”和“3302093809”。我正在执行两个单独的术语查询来获取一个与每个 ID 匹配的文档。

"size":1,
"query":{
  "term":{
    "from_user_id": "86746184549"
  }

}

"size":1,
"query":{
  "term":{
    "from_user_id": "3302093809"
  }

}

有没有办法组合这两个查询,类似于我们在方面所做的事情。

 {
    "facets":{
      "facet_1":{

       },
      "facet_2":{

       },
      "facet_3":{

       }  
    }
 }

我认为 terms query 不会在这里工作,因为它不会返回包含不同 from_user_id 字段的文档。

我想合并查询的原因是,如果我有 100 个这样的术语,那么我将拨打 100 次电话!!到弹性搜索服务器。

【问题讨论】:

  • 我认为术语查询正是您所需要的。为什么你认为它对你不起作用?我不确定我是否理解“distinct from_user_id 字段”的意思。
  • 我试着做{"size":2,"query":{"terms":{"from_user_id": ["86746184549","333621309995644"]}}}, but this gave me 2 results containing the same from_user_id`值->“86746184549”。如何获取包含 2 个不同的 from_user_id 值的 2 条记录。我不想查询整个数据集,这就是我在请求正文中指定size 的原因。只想在from_user_id 字段中获取两条记录,一条包含“86746184549”,另一条包含“333621309995644”。 `

标签: lucene elasticsearch


【解决方案1】:

听起来您正在寻找Field Collapsing/Combining,这是elasticsearch 中非常受欢迎但尚未实现的功能。同时,您可以使用Multi Search将多个术语请求合二为一。

【讨论】:

  • 期待这个新功能!
猜你喜欢
  • 1970-01-01
  • 2020-06-08
  • 2019-11-25
  • 2020-04-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多