我正在与Solr Search合作。当搜索短语时,排名并不能很好地工作。例如,如果我搜索“标题:图形设计师需要”,则标题应首先包含所有三个词,然后包含两个词,然后是单个词。
我希望按以下顺序获得结果:
"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>
您的查询并不意味着“在字段中查找所有这些单词 title ".
title
查询解析为“搜索 Graphics 在里面 标题 , Designers 在默认搜索字段中,以及 Need 在默认搜索字段中。
Graphics
标题
Designers
Need
您必须为每个术语添加字段名前缀,或使用 qf 连同(e)Demax。一种选择是使用 title:(Graphics Designers Need) ,或使用eDiscoveryMax: q=Graphics Designers Need&qf=title .
qf
title:(Graphics Designers Need)
q=Graphics Designers Need&qf=title
使用 debugQuery=true 查看如何计算每个文档的分数。
debugQuery=true