elasticsearch 高效匹配查询文本中包含的文本

2guxujil  于 2023-01-25  发布在  ElasticSearch
关注(0)|答案(1)|浏览(192)

我在索引中有一组文档S,其中每个文档D都有一个文本字段D.text。我想使用文本查询Q来查找文本包含/匹配在查询Q中的文档。
举个例子:

  • 具有文档D1、D2和D3的集合S分别具有文本"Stranger Things"、"Special Effects are top-notch"、"Entertaining and always keep me on edge"。
  • 文本查询Q:"我觉得《怪事》是Netflix上最好的剧集之一,演技精湛,情节耐人寻味,特效也是一流的。"
  • 我必须找到文档D1和D2,因为文本D1.text和D2.text在Q中。

到目前为止,我使用的是SpaCy中的PhraseMatcher类,它可以有效地匹配基于文本的大型术语列表。然而,我每次都需要在内存中构建一个大型术语列表(集合S的大小大于100000个文档,但可以更大)来查询大约100个文本以找到这些匹配项。我每秒都会收到几次这样的请求。
在ElasticSearch中有什么方法可以执行此查询吗?

htzpubme

htzpubme1#

ElasticSearch,与默认Map,将分离文本在D1,D2,D3到“关键字分隔的空间”和索引这些关键字。你可以分裂的话,在您的查询Q的关键字和搜索这些关键字在您的索引,这将只产生包含一个或多个搜索的“术语”的文档

相关问题