Elasticsearch 中的反义词过滤

Posted

技术标签:

【中文标题】Elasticsearch 中的反义词过滤【英文标题】:Antonym filtering in Elasticsearch 【发布时间】:2017-12-06 18:04:37 【问题描述】:

如果我使用包含“extrahepatisch”的查询字符串进行搜索,我不想找到带有反义词“intrahepatisch”的文档。

我有一个包含此类反义词对的列表。让elasticsearch使用反义词列表的最佳方法是什么?

【问题讨论】:

您正在使用什么分析器以使那些 do 匹配?这是GermanAnalyzer吗? 我们使用模糊查询elastic.co/guide/en/elasticsearch/reference/current/… 【参考方案1】:

您可以使用 Querqy 插件及其Common Rules Rewriter 实现此目的。

要从结果列表中排除“intrahepatisch”,您需要如下规则:

extrahepatisch => FILTER: -intrahepatisch

如果您想保留“intrahepatisch”的结果,但希望它们具有较低的相关性分数,以便它们出现在结果列表的末尾,您可以只“否决”它们:

extrahepatisch => DOWN(20): intrahepatisch

【讨论】:

【参考方案2】:

我相信您正在寻找的是使用Stop Token Filter。

【讨论】:

感谢您的回答。对不起,停用词不是我搜索的内容。如果搜索词中包含另一个词(“extrahepatisch”),我只想排除某个词(“intrahepatisch”)。

以上是关于Elasticsearch 中的反义词过滤的主要内容,如果未能解决你的问题,请参考以下文章

Elasticsearch 安装

Elasticsearch 中的同义词相关性问题

Elasticsearch:如何在 Elasticsearch 中正确使用同义词功能

Elasticsearch:如何在 Elasticsearch 中正确使用同义词功能

Elasticsearch同义词问题

探索Elasticsearch集群API