如何在嵌套查询中为每个查询获取n个文档?

时间:2013-12-20 15:14:22

标签: elasticsearch

我目前有一个文档类型,其中包含存储在Elasticsearch中的字符串标识符数组。我现在想一次搜索许多公司的标识符 - 这很容易,我只能通过提供所有标识符的组合列表告诉ES匹配任何标识符

现在,我想告诉ES匹配每组标识符的5个文档。例如,如果我存储了以下项目:

{ text: "Goodbye!", Identifiers: [q]}
{ text: "So long!", Identifiers: [a]}
{ text: "Goodnight!", Identifiers: [a, z]}
{ text: "See you tomorrow!", Identifiers: [b, r]}
{ text: "Farewell!", Identifiers: [c, b, d, m]}

我想提供几个查询,每个查询只返回1个元素。因此,如果我搜索任何一组中的项目(不关心重叠):

[d], [b, z, r], [d, r]

我希望能回来:

{ text: "Farewell!", Identifiers: [c, b, d, m]}
{ text: "Goodnight!", Identifiers: [a, z]}
{ text: "See you tomorrow!", Identifiers: [b, r]}

第一个,因为它匹配d,第二个因为它匹配z,第三个因为它匹配b

是否可以在一个查询中执行,或者我是否必须每组查询一次以实现此目的?

1 个答案:

答案 0 :(得分:0)

使用mulitsearch可以在每个查询中搜索n个文档。