3

我正在使用同义词分析器,但这只会添加单个单词的同义词。是否有类似的短语分析器,或者有人知道添加短语同义词的任何其他方式吗?例如,“The Big Apple”应该返回“New York”的热门歌曲。

谢谢。

4

1 回答 1

2

您显然可以构建自己的分析器...我构建了一个同义词分析器,它采用单个单词并匹配多个单词...自定义开发。

而不是这样做,我建议在查询构建或解析期间动态注入同义词。例如,您可以让一个人搜索“The Big Apple”...... 1)检查短语“The Big Apple”是否有同义词短语 2)如果存在同义词短语,则使用 2 个 PhraseQueries “The Big Apple”构建一个布尔查询和“纽约”。

另一种(更高效的方式)是使用 MultiPhraseQueries 而不是布尔 PhraseQueries。这将取决于您的布尔查询有多复杂......我发现在我的情况下两者都工作得非常快。

不利的一面是搜索速度会慢一些。好处是它是完全动态的,如果您配置/更改同义词,则不需要重建索引。如果您有一个多租户解决方案,其中每个客户端可以有不同的同义词,这也是完美的。

于 2012-10-24T20:36:26.263 回答