相关性的内部搜索优化

克什蒂·亚达夫

我的团队正在使用 Solr,我对此有疑问。

有一些搜索词没有提供相关结果或应该显示的结果。例如:

  1. 搜索没有像“Macys”这样的撇号的 Macy's 不会返回 Macy's 的任何结果。
  2. 搜索摩根大通和摩根大通给出不同的结果
  3. 搜索 IBM 不会显示包含其全名的结果,即 International business machine。

我们如何改进和优化此类案例,使其适用于所有情况,甚至适用于我们没有从上述 3 种情况中区分出来的情况?

有什么建议么?

马茨林德

所有这些问题都与您如何处理这些字段的传入文本有关您必须为该字段创建一个过滤器链 - 并且可能针对不同的用例使用多个字段并优先使用这些字段qf- 处理输入值以执行您想要的操作。

您的第一种情况可以通过使用 PatternReplaceFilter 删除任何撇号来解决 - 根据您的用例和标记器,您可能希望使用 CharFilter 版本,因为它在将文本拆分为多个标记之前处理文本。

您的第二种情况是直接的同义词过滤器或 WordDelimiterFilter,您可以在其中将 JPMorgan 扩展为“JP Morgan”,或者使用 WordDelimiterFilter 将大小写更改扩展为单独的标记。这也将允许您搜索JP和获取JPMorgan相关条目。这些可能对分数有不同的影响,用于debugQuery=true查看查询中的每个术语对分数的影响。

第三种情况大体上与第二种情况相同。您必须为所使用的术语创建一个合适的同义词列表,这通常是您在从用户、现有词典和领域知识获得反馈时构建的内容。还可以选择使用 NLP 对文本进行预处理,或者在这种情况下,将任何大写单词的首字母依次编入索引可能会有所帮助。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章