只需一个搜索查询即可获取所有匹配文档的关键字排名

时间:2017-03-01 23:05:57

标签: elasticsearch

我几天来一直在努力解决这个问题。

例如,如果我有

{doc_id1:"thor marvel"},
{doc_id2:"spiderman thor"}, 
{doc_id3:"the avengers captain america ironman thor"}

弹性搜索中的三个文档,并对“thor”进行搜索查询,我希望它告诉我在每个文档中找到关键字“thor”,如

{ doc_id1: 1, doc_id2: 2, doc_id3: 6} 

作为理想的结果。

我现在有两种可能的解决方案:

1.设置一种方法将_vectorterm 信息(包括文档的每个标记/单词的所有位置/偏移)放入_source ,以便我可以直接在我的普通搜索结果中访问_vectorterm信息。然后我可以在elasticsearch之外构建(doc,position)列表。通常,您只能在给定索引/类型/ ID的情况下一次访问单个文档的_vectorterm信息,这就是为什么它很棘手。这应该是实现目标的理想方式

2.设置一种方法在添加新文档时触发操作。此操作将扫描新文档中的所有标记/单词,创建新的“标记”索引(如果它不存在)并将其附加到(doc_id,position)对 {keyword:“thor”[doc_id1:1,doc_id2:2,doc_id3:6]}。 所以我只需要在关键字索引中搜索“thor”,然后获取(doc,position)列表。这似乎更难,更不理想。

可悲的是,我不知道如何做任何一个。如果有人能给我一些帮助,我将不胜感激。非常感谢!

0 个答案:

没有答案