为什么完全匹配的文档不是 Retrieve and Rank Solr 查询中的第一个结果?

Why isn't the document with an exact match the first result in a Retrieve and Rank Solr query?

我们获取了大量文档,使用 Watson 的 文档转换 服务将它们分解成片段 ("answer units"),并将它们添加到检索和排序中索尔集合。如果我 运行 使用来自一个答案单元的 copy/paste 文本(可能 150 个单词)对集合进行查询,检索和排名将 return 一堆文档,并且(如预期)结果包括从中复制查询文本的答案单元。 但是,该答案单元并不是最重要的结果;它通常是从顶部开始的 7 或 8 个文档。如果我用引号将查询文本括起来,那么 Solr 会正确地认为短语和 returns 只是那个单一的答案单元。 但是,如果没有引号,在查询中具有确切措辞的文档不应该仍然是结果中的顶级文档吗?

您似乎正在使用 /select 端点进行搜索。它不应该是最佳结果,因为它不使用短语查询进行搜索。 /select 使用一个布尔查询,该查询考虑了诸如 idf 分数之类的因素来得出最终的 solr 分数。您已经看到通过添加引号,如果您的应用程序想要这样做,您可以强制执行短语查询。现在,您有责任了解要使用的查询类型。

现在,如果您正在使用 /fcselect 并训练系统,随着时间的推移,排名器将 "learn" 您的 question/document 对中的短语是最重要的,如果它在事实如此。然后它将开始对这些文档进行更高的重新排序。这本质上是 RnR 的要点,即从查询和文档中学习如何将最相关的文档置于顶部,而您的应用程序无需编写不同的(通常是时间复杂的)solr 查询来查找文档。