SOLR基于匹配程度提升

时间:2018-01-30 13:17:56

标签: solr lucene

如何根据某个字段上更好的匹配文档来提升solr文档?

例如,我有一个类似Assault M16的文档。

我有两个字段,每个字段都会对文本进行索引NormalText: assault m16NormalTextNoSpaces: assaultm16

现在我搜索Assault M 16 Gun。 结果我会得到一堆文件,包含“攻击”,“m”,“16”,“枪”等字样。

我想提升与NormalTextNoSpaces字段完全匹配的所有文档,因为它与搜索文本的匹配程度优于其他字段。

这是因为普通文本字段存储文本而“M”和“16”之间没有空格。因此,匹配与NoSpace提交的内容不相关。

我想要的是某种功能,告诉我在一个或另一个领域是否有更好的匹配,以便我可以相应地提升文档。

1 个答案:

答案 0 :(得分:0)

如果你正在使用(e)dismax查询解析器,你可以通过qf参数给出每个字段的权重:q=Assault M 16 Gun&qf=NormalTextNoSpaces^100 NormalText会在NormalTextNoSpaces中给出100倍于权重的匹配而不是NormalText中的匹配。

必须针对每个用例以及您希望如何确定点击的优先级来确定精确的权重。