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 中正确使用同义词功能