问题
如果查询包含预先指定列表中的单词,Solr 的
match="subset"
选项可让您提升文档。好像没啥用啊
在我运行的所有实验中,只有当查询关键字与配置文件中的关键字完全匹配时,文档才会被提升。
此功能是在 Solr 8.3 中添加的,Solr 中存在大量的高程函数纯粹是为了实现子集匹配。但我已经在 Solr 9.3.0 和 8.11.2 中的我自己的核心中以及 Solr 9.3、8.11.2 和 8.3.0 中的 Solr techproducts 示例数据库中尝试过它,并且它似乎在任何设置中都不起作用。
重现步骤
solr -e techproducts
solr stop -all
elevate.xml
文件(通常在 solr\example\techproducts\solr\techproducts\conf
中)编辑为:<elevate>
<query text="foo bill" match="subset">
<doc id="IW-02" />
</query>
</elevate>
solr -e techproducts
) 并访问 http://localhost:8983/solr/techproducts/elevate?q=foo bill
。这将返回 id IW-02 的文档,而诸如 q=foo
或 q=foo bill bar
之类的查询则不会。但他们应该这样做,因为有子集选项。您是否尝试过使用其他字段类型而不是字符串?文档中的示例:
<fieldType name="unescapelowercase" class="solr.TextField">
<analyzer>
<charFilter class="solr.PatternReplaceCharFilterFactory" pattern="\\(.)" replacement="$1"/>
<tokenizer class="solr.StandardTokenizerFactory"/>
<filter class="solr.LowerCaseFilterFactory"/>
</analyzer>
</fieldType>