如何在elasticsearch中获取匹配标记的位置

7d7tgy0s  于 2021-06-14  发布在  ElasticSearch
关注(0)|答案(0)|浏览(184)

我想从狮身人面像研究迁移到弹性。但有一个任务,我不知道如何解决弹性。
我有两个字段的文档。
第一个字段-“标题”。这是一组单词。每个词都可以有同义词。
第二个字段-“ID”。它是ID数组,对应于同一索引上的字。
例如:

title = [ ["word1", "syn11", "syn12"], ["word2", "syn21"], ["word3"] ]
ids = [101, 102, 103]

id=101对应于字1,102-对应于字2。。。
我需要按字段“title”查找与某个短语匹配的文档。对于那个文档,从对应于最后一个匹配单词的“id”字段中获取id。所有这些都应该只在elastic中完成(而不是使用其他一些应用程序来处理中间结果)。
例如:
匹配“word3 syn11”应返回103
匹配“word1 syn21”应返回102
在sphinxsearch中,我将所有单词组合成字符串,如“word1syn11syn12”。字2 syn21。字3“。然后将索引器配置为处理点“.”作为句子分隔符,并在1000个单词上移动位置。在搜索过程中,我改变了排名以返回匹配令牌的最大位置。
但是有什么办法可以解决我的弹性任务吗?我在标记器中找不到任何类似的配置。我发现的唯一一件事是——我需要编写自定义插件来访问排名结果中匹配的令牌索引。

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题