我使用solr 4.4,我想通过相关性搜索完全匹配的单词。我有10个字段,我用过
复制字段以实现此目的。并且它的工作正常。
我对完全匹配结果有疑问应该更高的顺序。
我还能如何设定分数?
<field name="field8" type="text_search" indexed="true" stored="true"/>
<field name="description" type="text_search" indexed="true" stored="true"/>
<field name="keywords" type="text_search" indexed="true" stored="true"/>
<copyField source="field8" dest="text"/>
<copyField source="description" dest="text"/>
<copyField source="keywords" dest="text"/>
<requestHandler name="/browse" class="solr.SearchHandler">
<lst name="defaults">
<str name="echoParams">explicit</str>
<!-- Query settings -->
<str name="defType">edismax</str>
<str name="qf">
field8 description keyword ^10.0
</str>
<str name="df">text</str>
<str name="mm">100%</str>
<str name="q.alt">*:*</str>
<str name="rows">10</str>
<str name="fl">*,score</str>
........
........
........
答案 0 :(得分:0)
使用fq识别匹配文档列表后 和qf参数,pf参数可用于“提升”分数 在q参数中的所有术语出现的情况下的文档 在附近。
例如,如果您通过将 pf 设置为标题
来搜索 Apache Solr Luceneq=Apache Solr Lucen
& qf=title name
& pf=title
<!--Debug-->
<str name="parsedquery_toString">
+((name:apache | title:apache) (name:solr | title:solr) (name:lucene | title:lucene)) (title:"apache solr lucene")
</str>
现在,如果您查看调试响应。它正在搜索单个关键字,但也将其作为短语进行搜索。因此,它会将搜索字符串作为短语的所有搜索结果提升。
P.S:再次pf只会影响提升分数而不影响搜索结果。