Solr搜索无法与BOTH LIKE一起使用

时间:2015-07-28 12:41:53

标签: php mysql solr

我使用solr搜索从数据库和查询标签中搜索我的标题我已经给出了

title : "a bloo"

我有title类似

的记录
"a blood river","a blood path"

他们不会使用"一个bloo"进行搜索。它不像mysql那样像

那样
title like "%a bloo%"

任何人都可以建议我搜索它的正确方法。

1 个答案:

答案 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>