【问题标题】:Rank Value getting different,while Give same boosting value in solr query排名值变得不同,而在 solr 查询中给出相同的提升值
【发布时间】:2014-02-18 13:43:44
【问题描述】:

我的 solr 索引数据库中有 3 个字段,我搜索两个查询但字段不同

索引数据

员工编号:220232

pskills:JSP、Servlet、HTML、Java

oskills:DB2、Oracle、JDBC、JNI、JSP、VC++、C、C++、Java、SQL、XML、Palm OS、UNIX、PALM OS、AIX、Linux、Solaris、Windows 2000 , TCP/IP、IP、IDS、资产负债管理、企业应用 整合

schema.xml

<field name="employeeid" type="string" indexed="true" stored="true" required="true" /> 
<field name="pskills" type="text" indexed="true" stored="false" required="false" />  
<field name="oskills" type="text" indexed="true" stored="false" required="false" />

查询 1 = employeeid : 220232 AND (pskills : ( ( "java" ) )^3000.00)

分数:0.6169528

查询 2 = employeeid : 220232 AND (oskills : ( ( "java" ) )^3000.00)

分数:0.32307756

我的问题是两个字段都有“Java”关键字,那么为什么给出不同的值

【问题讨论】:

    标签: solr full-text-search solrj lucene


    【解决方案1】:

    很多原因!特别是:

    • 如果字段长度不同,分数会受到影响(较短字段中的匹配权重更大)(这里肯定是一个因素
    • 在其中一个字段中找到多个匹配项,从而使该字段具有更高的 tf(例如,java 在 oskills 中出现一次,但在 pskills 中出现两次)(这里似乎不是这种情况, 但需要说明)
    • 术语 java 在一个字段中的所有文档中比在另一个字段中更常见。例如,如果在所有文档中,“java”出现在 oskills 中的 1000 个文档中,但它只出现在 pskills 中的 100 个文档中,那么由于 idf,pskills 中的匹配得分更高。 (不知道这是否有影响,因为我不知道其余文件中的内容

    有关 lucene 评分的一些文档,请参阅TFIDFSimilarity

    您获得的分数特定于查询和运行时索引的状态。它们不打算与其他查询的分数进行比较。

    【讨论】:

      猜你喜欢
      • 2017-09-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多