我正在使用同义词分析器,但这只会添加单个单词的同义词。是否有类似的短语分析器,或者有人知道添加短语同义词的任何其他方法吗?例如,“The Big Apple”应该返回“New York”的匹配结果。
谢谢。
最佳答案
您显然可以构建自己的分析器...我构建了一个同义词分析器,它采用单个单词并匹配多个单词...自定义开发。
我建议在查询构建或解析期间动态注入(inject)同义词,而不是这样做。例如,您可以让人搜索“The Big Apple”... 1)检查短语“The Big Apple”的同义词短语 2) 如果存在同义词短语,则使用 2 个 PhraseQueries“The Big Apple”和“New York”构建 bool 查询。
另一种(性能更高的方法)是使用 MultiPhraseQueries 而不是 bool PhraseQueries。这取决于您的 bool 查询的复杂程度...我发现在我的情况下两者都运行得非常快。
这样做的缺点是搜索速度会慢一些。好处是它是完全动态的,如果您配置/更改同义词,不需要重建索引。如果您有一个 Multi-Tenancy 解决方案,其中每个客户端可以有不同的同义词,那么它也是完美的。
关于lucene.net - 短语同义词分析器Lucene.net?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12971495/