【问题标题】:Solr 4.1 dismax pf not returning expected resultsSolr 4.1 dismax pf 未返回预期结果
【发布时间】:2013-04-01 20:57:20
【问题描述】:

我正在使用 solr4.1 和 qt=dismax。我也有一套类似的 solr1.4。

当我使用 pf 字段查询 solr 4.1 时,返回的结果顶部没有匹配短语的文档。在我之前安装的 solr 1.4 中,我得到了正确的结果,即具有短语的文档的排名确实高于没有短语的文档。

在 solrconfig.xml 我有这个配置:

    <requestHandler name="dismax" class="solr.SearchHandler" >
    <lst name="defaults">
        <str name="defType">dismax</str>
        <str name="echoParams">explicit</str>
        <float name="tie">1.0</float>
    </lst>
    </requestHandler>

我的查询如下所示:

qt=dismax&q=product%20manager&qf=summ_svc_descr+skills+past_proj_tag+past_proj_name+past_proj_descr+login_name+business_name+primary_state+primary_country+primary_city+tagline+dtl_svc_descr+keywords+about_us+parent_cat_name+experience+credentials+past_cat_name+group_log +company_business_name&fl=dtl_svc_descr+uniq_id,login_name,login_userid,parent_cat_name,parent_cat_id,net_score,business_name,business_name_sort,primary_state,primary_country,primary_city,primary_zip,reviews_positive_12mos,reviews_12mos,feedback_avg_12mos,earnings_12mos,reviews_positive_6mos,reviews_6mos,feedback_avg_6mos,earnings_6mos,earnings_overall,tagline,summ_svc_descr ,hourly_rate,is_individual,user_id,score,tier_seller_id,file_upload_id,file_upload_name,new_provider,is_team,team_cnt,skill_ids,skills,portfolio_yn,jobs_accepted_12mos,is_agent,company_userid,company_login_name,company_business_name,available_y**&pf=summ_svc.8+ past_proj_tag+past_proj_name+past_proj_descr+experienc e+credentials+tagline^1.8+dtl_svc_descr^1.2+keywords+about_us^1.2**&rows=25&start=0&wt=json

当我检查调试输出时,我发现 parsedquery 也确实评估了短语:

parsedquery_toString: "+(((技能:产品 | about_us:产品 | 关键词:产品 |过去项目名称:产品 |过去项目描述:产品 | 过去的猫名:产品 | summ_svc_descr:产品 |过去项目标签:产品 | company_login_name:产品 |父猫名称:产品 | 业务名称:产品 |登录名:产品 | company_business_name:产品 |凭证:产品 | 体验:产品 | dtl_svc_descr:产品 |主要状态:产品 | 主要国家:产品 |主要城市:产品 |组:产品 | 标语:产品)~1.0(技能:manag | about_us:manag | 关键字:manag | 过去项目名称:管理 | past_proj_descr:manag |过去的猫名:manag | summ_svc_descr:manag |过去项目标签:管理 | company_login_name:manag | parent_cat_name:manag |业务名称:manag |登录名:manag | company_business_name:manag |凭据:管理 |经验:管理 | dtl_svc_descr:manag |主要状态:经理 |主要国家:经理 |主要城市:经理 |组:管理 |标语:manag)~1.0)~2) (技能:“产品管理”~1^1.8 | about_us:“产品管理”~1^1.2 | 关键词:“产品经理”~1 | past_proj_name:"产品管理"~1 | past_proj_descr:"产品管理"~1 | summ_svc_descr:“产品 管理"~1^1.2 | past_proj_tag:"产品管理"~1 | 经验:"产品 manag"~1 | 凭据:"产品管理"~1 | dtl_svc_descr:"产品 管理"~1^1.2 | 标语:"产品管理"~1^1.8)~1.0"

【问题讨论】:

  • 你能检查一下 Solr 1.4 和 4.1 的分数和查询分数解释之间的差异吗?
  • 是的,那是我要看的下一个地方。由于字段太多,每个文档的分数计算非常复杂。

标签: solr dismax


【解决方案1】:

我发现了问题。为了大家的利益发布答案。

pf 参数和输出本身没有任何问题。这只是一个更深层次问题的症状。

定义了一个自定义相似性类(由我从架构文件中发现的在我之前工作的开发人员),导致许多文档的 fieldNorm 为 0。多亏了详细的 debugQuery 输出,我才能够找到问题,并且还弄清楚了如何进行每个字段的相似性。此外,我曾尝试使用 Solr 提供的默认相似性类,但这无助于获得结果,因为我没有重新索引文档。如果我重新索引文档,那么自定义相似性是罪魁祸首会更清楚。

Solr 在索引和查询时间都使用 Similarity 类。因此,每当您选择更改架构中的相似性类时,如果您希望新的相似性类完全生效,您很可能需要重新索引所有文档。

【讨论】:

    猜你喜欢
    • 2011-08-09
    • 2010-09-22
    • 2021-05-17
    • 2018-02-19
    • 2018-03-23
    • 2020-03-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多