Solr Pharse 匹配不适用于正确的排名
Solr Pharse match is not working with proper ranking
我正在使用 Solr 搜索。搜索词组时排名不正常。例如,如果我搜索 "title:Graphic Designers Need",那么首先包含所有三个词的标题应该排在最前面,然后是两个词,然后是单个词。
我想要以下顺序的结果:
"title": "Specification Graphic Designers Need To Know Every Day",
"title": "Graphic Designers: Insider Secrets from Top Designers",
"title": "Graphic ElementsUnique Elements for Distinctive Designs",
<field name="title" type="case_sensitive" indexed="true" stored="true" required="false" multiValued="false" omitNorms="true"/>
<fieldType name="case_sensitive" class="solr.TextField" positionIncrementGap="100">
<analyzer type="index">
<tokenizer class="solr.StandardTokenizerFactory"/>
<filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt"/>
<filter class="solr.LowerCaseFilterFactory"/>
<filter class="solr.SnowballPorterFilterFactory"/>
</analyzer>
<analyzer type="query">
<tokenizer class="solr.StandardTokenizerFactory"/>
<filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt" />
<filter class="solr.SynonymFilterFactory" synonyms="synonyms.txt" ignoreCase="true" expand="true"/>
<filter class="solr.LowerCaseFilterFactory"/>
<filter class="solr.SnowballPorterFilterFactory"/>
</analyzer>
</fieldType>
您的查询不代表"find all these words in the field title
"。
查询被解析为“在 title
中搜索 Graphics
,在默认搜索字段中搜索 Designers
,在默认搜索字段中搜索 Need
。
您必须为每个术语添加字段名称前缀,或将 qf
与 (e)dismax 一起使用。一种选择是使用 title:(Graphics Designers Need)
,或使用 edismax:q=Graphics Designers Need&qf=title
.
使用debugQuery=true
查看每个文档的分数是如何计算的。
我正在使用 Solr 搜索。搜索词组时排名不正常。例如,如果我搜索 "title:Graphic Designers Need",那么首先包含所有三个词的标题应该排在最前面,然后是两个词,然后是单个词。
我想要以下顺序的结果:
"title": "Specification Graphic Designers Need To Know Every Day",
"title": "Graphic Designers: Insider Secrets from Top Designers",
"title": "Graphic ElementsUnique Elements for Distinctive Designs",
<field name="title" type="case_sensitive" indexed="true" stored="true" required="false" multiValued="false" omitNorms="true"/>
<fieldType name="case_sensitive" class="solr.TextField" positionIncrementGap="100">
<analyzer type="index">
<tokenizer class="solr.StandardTokenizerFactory"/>
<filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt"/>
<filter class="solr.LowerCaseFilterFactory"/>
<filter class="solr.SnowballPorterFilterFactory"/>
</analyzer>
<analyzer type="query">
<tokenizer class="solr.StandardTokenizerFactory"/>
<filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt" />
<filter class="solr.SynonymFilterFactory" synonyms="synonyms.txt" ignoreCase="true" expand="true"/>
<filter class="solr.LowerCaseFilterFactory"/>
<filter class="solr.SnowballPorterFilterFactory"/>
</analyzer>
</fieldType>
您的查询不代表"find all these words in the field title
"。
查询被解析为“在 title
中搜索 Graphics
,在默认搜索字段中搜索 Designers
,在默认搜索字段中搜索 Need
。
您必须为每个术语添加字段名称前缀,或将 qf
与 (e)dismax 一起使用。一种选择是使用 title:(Graphics Designers Need)
,或使用 edismax:q=Graphics Designers Need&qf=title
.
使用debugQuery=true
查看每个文档的分数是如何计算的。