【问题标题】:Internal Search optimization for relevance相关性的内部搜索优化
【发布时间】:2018-09-19 15:34:52
【问题描述】:

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

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

  1. 搜索不带撇号(如“Macys”)的 Macy's 不会返回任何 Macy's 的结果。
  2. 搜索 JPMorgan 与 JP Morgan 会得到不同的结果
  3. 搜索 IBM 时未显示包含其全名(即 International business machine)的结果。

我们如何改进和优化此类案例,使其适用于所有人,甚至适用于除了上述 3 个之外我们没有发现的案例?

有什么建议吗?

【问题讨论】:

    标签: search optimization solr nlp search-engine


    【解决方案1】:

    所有这些问题都与how you process the incoming text for those fields 有关。您必须为该字段创建一个过滤器链 - 并可能为不同的用例使用多个字段,并优先使用 qf 的字段 - 处理输入值以执行您想要的操作。

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

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

    第三种情况一般与第二种情况相同。您必须为所使用的术语创建一个体面的同义词列表,这通常是您在从用户、现有词典和领域知识获得反馈时构建的。还可以选择使用 NLP 预处理文本,或者在这种情况下,像索引任何大写单词的首字母这样简单的方法会有所帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-11-20
      • 1970-01-01
      • 1970-01-01
      • 2014-09-01
      • 1970-01-01
      • 2017-12-25
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多