【发布时间】:2017-12-12 14:05:05
【问题描述】:
我们在elasticsearch中有以下文档。
class Query(DocType):
text = Text(analyzer='snowball', fields={'raw': Keyword()})
src = Keyword()
现在我们想要每个 src 的前 k 个结果。我们怎样才能做到这一点?
示例:- 假设我们索引以下内容:
# src: place_order
Query(text="I want to order food", src="place_order")
Query(text="Take my order", src="place_order")
...
# src: payment
Query(text="How to pay ?", src="payment")
Query(text="Do you accept credit card ?", src="payment")
...
现在如果用户写了一个查询take my order please as well as the credit card details,并且k=1,那么我们应该返回以下两个结果
[{"text": "Take my order", "src": "place_order", },
{"text": "Do you accept credit card ?", "src": "payment"}
]
由于 k=1,我们只为每个 src 返回一个结果。
【问题讨论】:
-
我知道这是你的映射;您能否还提供一些文档示例,以及期望的返回结果是什么?谢谢。
-
@NikolayVasiliev 我已经添加了示例
标签: elasticsearch elasticsearch-5 elasticsearch-dsl