我正在使用 solr 搜索文档并在一个字段上进行匹配,然后希望根据出现在其他字段中的关键字进行提升。
前任。
<str name="qf">
name^1
</str>
<str name="pf">
keywords1^2
keywords2^1.2
description^0.2
</str>
所以如果我搜索
q=foo+bar
我有一个结果
name = "This is a foo bar"
keywords1 = "bar"
keywords2 = "foo cats dogs chicken"
description = "There is a foo in here with a bar"
查询从描述中得到提升,而不是从关键字 1 和关键字 2 中得到提升。我知道这是因为 pf 在关键字 1 中搜索“foo bar”(带有短语 slop),而不是“foo”“bar”。我想根据单个单词进行提升。没有插件这可能吗?
我想到的事情:
我知道像 pf2 和 pf3 这样的选项,但基本上我正在寻找的是 pf1。我希望能够提升单个单词。
我不只是将关键字 1、关键字 2 添加到 qf 的原因是我不希望它们被匹配。由于关键字二有一些可能与文档没有任何关系的术语。
我可以在查询时分解查询并使用 bq
bq = keywords1:foo OR keywords1:bar etc...
但我想为不同的字段分配不同的权重,构建查询很麻烦。
总之,我想要一个参数 a la pf1。