用户提供的术语向量,用于在elasticsearch中突出显示

irtuqstp  于 2021-06-15  发布在  ElasticSearch
关注(0)|答案(0)|浏览(233)

我想在搜索结果中使用elasticsearch的突出显示功能,但不能使用analyzer插件。我们的(非常定制的)nlp管道相当繁重(在cpu和内存中,在生产中它可能与其他服务进行通信,例如字典解析)。
目前,我们将一个纯文本文档转换为一个标记列表,所以 The quick siberian fox jumps over the grizzly bear 变成 {"text": "The quick siberian fox jumps over the grizzly bear", "tokens": ["quick", "siberian fox", "jump", "grizzly bear"]} . 然后我们将上面的内容作为一个文档插入,包含2个字段, text 以及 tokens ,并且我们在 tokens 现场。到现在为止,一直都还不错。
现在我们正在考虑突出显示原始文本中的匹配项,因此如果用户搜索“jump”,我们希望返回 The quick siberian fox [jumps] over the grizzly bear . 然而,据我所知,elasticsearch突出显示引擎依赖于在索引或查询时分析纯文本,以获得包含位置信息的术语向量(是这样吗?)
因为我们不能为es编写分析器插件,所以我们不能依赖这种方法。但是,在纯文本字符串上运行nlp管道时,我们确实会生成位置信息,所以我们可以在索引时提供术语向量吗?我在elasticsearch中找到了用户定义的术语向量,但唯一的答案是应用程序(knn),而不是手动插入术语向量的问题。
或者,有没有一种不同的方式来突出显示,我们可以使用?我找到了https://www.elastic.co/blog/search-for-things-not-strings-with-the-annotated-text-plugin 但我不知道如果我们把这些东西编入索引会怎么样 the [quick](quick) [siberian fox](siberian fox) [jumps](jump) over the [grizzly bear](grizzly bear) 几乎所有的东西都会被注解。

暂无答案!

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

相关问题