我使用solr搜索从数据库和查询标签中搜索我的标题我已经给出了
title : "a bloo"
我有title
类似
"a blood river","a blood path"
他们不会使用"一个bloo"进行搜索。它不像mysql那样像
那样title like "%a bloo%"
任何人都可以建议我搜索它的正确方法。
答案 0 :(得分:1)
在索引字段标题时,这一切都取决于您正在创建的标记。
如果您创建较小的令牌,例如单词" Blood" .. blo,bloo,血然后它将是可搜索的......
要创建此类令牌,您需要使用EdgeNGramFilterFactory
为你的字段标题尝试以下字段类型并再次索引...
另外,为了更好地分析令牌,您可以使用solr Web界面,即分析工具......它将为您提供索引时创建的令牌benn的正确图片以及在查询时是否匹配... < / p>
<fieldType name="text_reference" class="solr.TextField" sortMissingLast="true" omitNorms="true" positionIncrementGap="100">
<analyzer type="index">
<tokenizer class="solr.KeywordTokenizerFactory"/>
<filter class="solr.LowerCaseFilterFactory"/>
<filter class="solr.EdgeNGramFilterFactory" minGramSize="3" maxGramSize="50" side="front"/>
<filter class="solr.EdgeNGramFilterFactory" minGramSize="3" maxGramSize="50" side="back"/>
</analyzer>
<analyzer type="query">
<tokenizer class="solr.KeywordTokenizerFactory"/>
<filter class="solr.LowerCaseFilterFactory"/>
</analyzer>
</fieldType>
另外,为了更好地分析令牌,您可以使用solr Web界面,即分析工具......它将为您提供索引时创建的令牌benn的正确图片以及在查询时是否匹配... < / p>