繁体   English   中英

solr:如何在分词器之后提高查询条件

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM