Solr 4.1 dismax pf未返回预期结果

时间:2013-04-01 20:57:20

标签: solr dismax

我正在使用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 =产物%20manager&安培; QF = summ_svc_descr +技能+ past_proj_tag + past_proj_name + past_proj_descr + LOGIN_NAME + BUSINESS_NAME + primary_state + primary_country + primary_city +标语+ dtl_svc_descr +关键字+ about_us + parent_cat_name +经验+凭证+ past_cat_name +基团+ company_login_name + 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,标语,summ_svc_descr,hourly_rate,is_individual,USER_ID,得分,tier_seller_id,file_upload_id,file_upload_name,new_provider,is_team,team_cnt,skill_ids,技能,portfolio_yn,jobs_accepted_12mos,is_agent,company_userid,company_login_name,company_business_name,available_y **&安培; PF = summ_svc_descr ^ 1.2 +技能^ 1.8 + past_proj_tag + past_proj_name + past_proj + _descr经验+凭证+标语^ 1.8 + dtl_svc_descr ^ 1.2 +关键字+ about_us ^ 1.2 **&安培;行数= 25安培;开始= 0&安培;重量= JSON

当我检查调试输出时,我看到解析的查询也会评估短语:

  

parsedquery_toString:“+(((技能:产品| about_us:产品|   关键词:产品| past_proj_name:产品| past_proj_descr:产品|   past_cat_name:产品| summ_svc_descr:产品| past_proj_tag:产品   | company_login_name:产品| parent_cat_name:产品|   business_name:产品| login_name:产品|   company_business_name:产品|凭证:产品|   经验:产品| dtl_svc_descr:产品| primary_state:产品|   primary_country:产品| primary_city:产品|团体:产品|   标语:产品)~1.0(技能:manag | about_us:manag |关键词:manag |   past_proj_name:manag | past_proj_descr:manag | past_cat_name:manag |   summ_svc_descr:manag | past_proj_tag:manag | company_login_name:MANAG   | parent_cat_name:manag | business_name:manag | login_name:manag |   company_business_name:manag |凭证:管理|经验:管理|   dtl_svc_descr:manag | primary_state:manager | primary_country:经理   | primary_city:经理|团体:管理|标语:MANAG)〜1.0)〜2)   (技能:“产品管理”~1 ^ 1.8 | about_us:“产品管理”~1 ^ 1.2 |   关键词:“产品管理”~1 | past_proj_name:“产品管理”~1 |   past_proj_descr:“产品管理”~1 | summ_svc_descr:“产品   manag“~1 ^ 1.2 | past_proj_tag:”产品管理“~1 |经验:”产品   manag“~1 |凭证:”产品管理“~1 | dtl_svc_descr:”产品   manag“~1 ^ 1.2 |标语:”产品管理“~1 ^ 1.8)~1.0”

1 个答案:

答案 0 :(得分:1)

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

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

我们定义了一个自定义相似度类(由我在模式文件中找到的开发人员在我之前工作)导致很多文档的fieldNorm为0。由于详细的debugQuery输出,我能够找到问题,并找出了如何进行per-field相似性。此外,我曾尝试使用Solr提供的默认相似性类,但这并没有帮助获得结果,因为我没有重新索引文档。如果我重新索引文档,那么自定义相似性就是罪魁祸首就更清楚了。

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