[英]solr : how to boost query term after tokenizer
如果查询词为“ ABCD”,则在被标记后为“ A”,“ BC”,“ D”。 我想增加术语“ BC”,所以查询词是这样的:
A BC^10 D" and phrase query "ABCD"
用户键入的所有查询词将被自动处理,从而提高重要的查询词。
我想我可以定制一个新的Tokenizer来做到这一点,但是我不知道它是否可行,或者还有其他一些更简单的方法。
您可以使用QueryElevationComponent进行此操作。 如果您在elevate.xml文件中输入BC之类的词,则这些词将在查询时自动增加。 当然,如果您已将组件添加到请求处理程序中。
编辑:
我认为您的意思是增加术语而不是增加术语文档。 我认为在您的情况下,如果您使用正则表达式和白名单来查找特定术语并在发送给solr之前更改字符串以包括增强,可能会有用。
[Fact]
public void Boost()
{
var query = "ABCD";
var importantTerms = new List<string>{ "BC"};
importantTerms.ForEach(term => query = query.Replace(term, string.Format("+{0}^10+", term)));
Assert.Equal("A+BC^10+D", query);
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.