gpt4 book ai didi

java - SOLR 匹配短语(SHINGLE FILTER)

转载 作者:太空宇宙 更新时间:2023-11-04 13:37:54 24 4
gpt4 key购买 nike

我正在使用 SOLR 5.2 构建应用程序,我需要这种类型的匹配:

如果我存储了字段名称:“bla1 bla2”和名称:“bla2 some bla3”当我查询诸如名称之类的内容时:“某事bla1 bla2某事bla3 bla4”我需要它来匹配两个术语

所以我最终做的是定义这种类型的字段:

我使用关键字分词器进行索引

我使用空白分词器和Shingle过滤器进行查询,所以我得到类似这样的“bla tra kla zla cla”输出“bla tra”,“bla tra kla”,“bla tra kla zla”......

我尝试过分析,并且 shingling 工作正常,但问题是当我使用真实数据执行查询时,它似乎找不到匹配项。

 <fieldType name="shingleparse" class="solr.TextField" positionIncrementGap="100">
<analyzer type="index">
<tokenizer class="solr.KeywordTokenizerFactory"/>
</analyzer>
<analyzer type="query">
<tokenizer class="solr.WhitespaceTokenizerFactory"/>
<filter class="solr.ShingleFilterFactory" outputUnigrams="false" outputUnigramsIfNoShingles="true" minShingleSize="2" maxShingleSize="5"/>
</analyzer>
</fieldType>

<field name="name" type="shingleparse" indexed="true" stored="true" required="true" multiValued="false" />

最佳答案

您可以检查一下这是否符合您的要求。

<fieldType name="text_general" class="solr.TextField" positionIncrementGap="100">
<analyzer type="index">
<tokenizer class="solr.StandardTokenizerFactory"/>
<filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt" enablePositionIncrements="true"/>
<filter class="solr.LowerCaseFilterFactory"/>
</analyzer>
<analyzer type="query">
<tokenizer class="solr.StandardTokenizerFactory"/>
<filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt" enablePositionIncrements="true"/>
<filter class="solr.SynonymFilterFactory" synonyms="synonyms.txt" ignoreCase="true" expand="true"/>
<filter class="solr.LowerCaseFilterFactory"/>
</analyzer>
</fieldType>

关于java - SOLR 匹配短语(SHINGLE FILTER),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31534306/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com