我正在使用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”
答案 0 :(得分:1)
我发现了这个问题。为每个人的利益发布答案。
pf参数和输出本身没有任何问题。这只是一个根深蒂固的问题的症状。
我们定义了一个自定义相似度类(由我在模式文件中找到的开发人员在我之前工作)导致很多文档的fieldNorm为0。由于详细的debugQuery输出,我能够找到问题,并找出了如何进行per-field相似性。此外,我曾尝试使用Solr提供的默认相似性类,但这并没有帮助获得结果,因为我没有重新索引文档。如果我重新索引文档,那么自定义相似性就是罪魁祸首就更清楚了。
Solr在索引处使用Similarity类作为查询时间。因此,每当您选择更改架构中的相似性类时,如果您希望新的Similarity类完全生效,则很可能需要重新索引所有文档。