我的 SME 有一条关于 SOLR 搜索相关性的规则。它是这样的。
当“XX”、“YY”或“ZZ”出现在用户的搜索词中时,大幅提升结果中的文档类型“MMMM”。(但只有那时,这意味着我不能对我认为的文档本身进行加权。)
我可以想象构建一个“查询预处理器”来检查指定术语“XX”等的存在,然后将它们插入到一个预先构建的查询中,从而大大提升 document_type “MMMM”。
这对我来说感觉有点笨拙。在代码中执行此操作并处理来自两个规则的术语在搜索中的“联合”情况听起来不像我想要维护的东西。
我想知道是否有办法利用 SOLR 来做到这一点?首先想到的是在预处理数据以进入 SOLR 时,将那些特定的搜索词“XX”等放入任何文档类型“MMMM”中。
只是将它们扔到文档的文本中可能不会改变太多的权重 - 特别是如果该术语在其他文档中不是该文档类型的一部分 - 在我看来,这表明所有文档上都有一个“important_abbreviations”字段和在所有查询中包含对该通用字段的提升的“标准”做法。我这么说是因为我不记得曾经见过一种方法来提升文档中的特定字段,除非在查询中。
我想知道是否还有其他人解决了这个问题,如果是,如何解决——因为这两个对我来说都感觉有点笨拙。