与pf和qf一起搜索的solr

时间:2016-08-03 06:04:54

标签: php apache solr

我正在使用php solr扩展以及如何在solr中进行搜索,如下所示:

        $dismaxQuery = new SolrDisMaxQuery($search);
    $dismaxQuery
        ->addQueryField("fundraise_title", 10)
        ->addQueryField("fundraiser_display_name", 10)

        ->setPhraseFields("fundraiseTitleExact~2^10 fundraiserDisplayNameExact~2^10");

返回以下响应头:

[params] => SolrObject Object
    (
        [pf] => fundraiseTitleExact~2^10 fundraiserDisplayNameExact~2^10
        [fl] => frpId,fundraise_title
        [indent] => on
        [q] => The Nest
        [qf] => fundraise_title^10 fundraiser_display_name^10
        [wt] => xml
        [hl] => true
        [defType] => edismax
        [version] => 2.2
    )

但在进行搜索时,似乎只在qf查询上进行搜索,并忽略pf查询;任何想法如何使这项工作在一起?

solr输入:

params={pf=fundraiseTitleExact~2^10+fundraiserDisplayNameExact~2^10&fl=frpId,fundraise_title&indent=on&q=The+Nest&qf=fundraise_title^10+fundraiser_display_name^10&wt=xml&hl=true&defType=edismax&version=2.2}

1 个答案:

答案 0 :(得分:0)

这是正常和预期的行为:

qf 是一个查询字段,这意味着这些字段用于搜索它们。

pf是一个词组字段,只会提升您从 qf 获得的结果,这就是为什么您可能会认为它们会被忽略的原因。

来自 Solr 文档:

  

pf(短语字段)参数。一旦匹配文件列表   已使用fq和qf参数,pf参数识别   可以用来提升"所有案件中的文件分数   q参数中的术语非常接近。格式是   与qf参数使用的相同:字段列表和   "提升"在制作短语查询时与每个人联系   整个q参数。