民间,
我们希望确保solr根据过滤顺序查询数据。
例如,如果输入的内容类似于“请在这里帮助某人”,那么首先它应根据以下内容查询数据(以下所有内容均为5个不同的文件供我们使用)
“请帮忙” “帮助他人” “有人在这里”
然后通过
“请” “救命” 等
我们看到solr正在随机选择索引和搜索文档
e.g。如果我们搜索“请在这里帮助某人”它正在打印到文件中有“需要帮助”的文件(这是在中间,但应该在底部)
<analyzer type="query">
<tokenizer class="solr.WhitespaceTokenizerFactory"/>
<filter class="solr.ShingleFilterFactory" minShingleSize="2" maxShingleSize="4" outputUnigrams="false"/>
<filter class="solr.LowerCaseFilterFactory"/>
<filter class="solr.SynonymFilterFactory" synonyms="synonyms.txt" ignoreCase="true" expand="true"/>
</analyzer>
答案 0 :(得分:0)
索引到两个不同的字段,一个用于Shingle匹配(如您定义的),另一个用于自由文本匹配。使用qf=shinglefield^10 textfield
对得分进行不同的匹配 - 以便在shinglefield中的匹配得分比常规文本字段中的匹配高十倍。您需要根据自己的需要调整这些权重。
qf
是一个有效的参数。