【发布时间】:2018-12-02 02:40:21
【问题描述】:
我正在使用 Solr v6.2.1。我们没有使用“排序分数 desc”获得准确的结果。
假设我们的索引中有一个文档列表,如下所示
[{ “id”:“1”, "内容": ["java 开发者"] },
{ “id”:“2”, "content": ["Java 是面向对象的。Java 健壮的语言。Core java "] },
{ “id”:“3”, "content": ["java 独立于平台。Java 语言。"] }]
内容被定义为架构中的多值字段
field name="content" type="text_general" multiValued="true" indexed="true" stored="true"
当我使用以下查询搜索 java 时
卷曲http://localhost:8983/solr/test/select?fl=score,id&q=(java)&wt=json&sort=score desc
我希望具有 Id :2 的内容应该排在第一位,因为它包含更多与 java 相关的匹配项。但是 solr 给出的结果不一致。
请说明为什么我无法获得想要的结果。
【问题讨论】:
-
匹配的数量不是用于计算分数的唯一因素(也使用字段的长度,其中短字段被认为更重要)。将
debugQuery=true附加到您的查询 URL 以查看每个分数的准确计算方式。您也不必明确按分数排序,这是默认完成的。您还应该在搜索时提供一个字段名称,例如content:java,这样您就可以确定您正在搜索您认为正在搜索的字段。