1

我们应用了提升和短语提升,如下所示:

    https://localhost:8983/solr/app_index/select?bq=(Title:"userinput")^20+
    +(Desc:"userinput")^10&pf=(Title:"userinput")^20+(Desc:"userinput")^10
   &q=(bodycontent_t:(userinput))&defType=edismax&tie=0.01

上面的查询在以下情况下工作正常:

用户输入:Solr 查询

用户输入:查询分析

但是,如果我们如下键入 3 个或更多术语,则不会带来如下所述的预期结果:

预期结果是首先完全匹配,然后是部分短语

用户输入:Solr 查询分析

预期结果按以下顺序:

Solr 查询分析是最佳实践

solr 查询有利于分析

solr中的查询分析很好

solr是搜索领域的关键参与者

查询您的要求

分析总是给出更好的结果

获得了一些有关可能适合此要求的 Shingle 过滤器的有用链接。

http://archive.apache.org/dist/lucene/solr/ref-guide/apache-solr-ref-guide-5.3.pdf#page=112&zoom=auto,-187,475

带状疱疹是否符合上述要求?如果是,请指导如何对带状疱疹应用增强或任何更好的方法来首先获得准确的短语,然后通过增强的部分短语?

请在这里指导。感谢你的帮助。

4

1 回答 1

0

您可以为您的字段尝试以下字段类型。

<fieldType name="string_test" class="solr.TextField" sortMissingLast="true" omitNorms="true"> 
    <analyzer type="index">         
        <tokenizer class="solr.StandardTokenizerFactory"/>
         <filter class="solr.LowerCaseFilterFactory"/>
        <filter class="solr.ShingleFilterFactory" minShingleSize="2" maxShingleSize="4"
         outputUnigrams="true" outputUnigramsIfNoShingles="true">
    </analyzer>  
    <analyzer type="query">
        <tokenizer class="solr.KeywordTokenizerFactory"/>
         <filter class="solr.LowerCaseFilterFactory"/>
    </analyzer>
</fieldType> 

请参阅文本“Solr 分析页面”的分析页面。

分析页面

于 2021-11-02T05:45:25.137 回答