1

我正在使用 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+any_group_login_= 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_descr^1.2+skills^1.8+past_proj_tag+past_proj_name+past_proj_descr+experience+credentials+tagline^1.8+dtl_svc_descr^1.2+keywords+about_us^1.2**&rows=25&start= json

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

管理 | 经验:管理 | dtl_svc_descr:manag | 主要状态:经理 | 主要国家:经理 | 主要城市:经理 | 组:管理 | 标语:manag)~1.0)~2) (技能:“产品管理”~1^1.8 | about_us:“产品管理”~1^1.2 | 关键词:“产品管理”~1 | 过去项目名称:“产品管理”~1 | past_proj_descr:"产品管理"~1 | summ_svc_descr:"产品管理"~1^1.2 | past_proj_tag:"产品管理"~1 | 经验:"产品管理"~1 | 凭证:"产品管理"~1 | dtl_svc_descr: “产品经理”~1^1.2 | 标语:“产品经理”~1^1.8)~1.0" 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 | 经验:“产品经理”~1 | 凭据:“产品经理”~1 | dtl_svc_descr:"产品管理"~1^1.2 | 标语:“产品管理”~1^1.8)~1.0" 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 | 经验:“产品经理”~1 | 凭据:“产品经理”~1 | dtl_svc_descr:"产品管理"~1^1.2 | 标语:“产品管理”~1^1.8)~1.0" 2 | 标语:“产品管理”~1^1.8)~1.0" 2 | 标语:“产品管理”~1^1.8)~1.0"

4

1 回答 1

1

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

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

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

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

于 2013-04-07T22:23:13.830 回答