solr单引号

时间:2013-01-17 11:26:54

标签: solr filter

我是solr的新手,我有一个问题。我的原始字符串是“crohn's”,当我输入类似“crohn's”的东西时,它返回正常,而且当我输入类似“crohn”的东西时,它也会返回正常,但是当我键入“crohns”时它不返回字符串“克罗恩的“

这是我的schma.xml代码

  <analyzer type="index">
    <tokenizer class="solr.StandardTokenizerFactory"/>
    <filter class="solr.LowerCaseFilterFactory"/>
    <filter class="solr.StopFilterFactory" words="stopwords.txt" ignoreCase="true"/>
    <filter class="solr.EnglishPossessiveFilterFactory"/>
      </analyzer>
  <analyzer type="query">
    <tokenizer class="solr.StandardTokenizerFactory"/>
    <filter class="solr.LowerCaseFilterFactory"/>
    <filter class="solr.StopFilterFactory" words="stopwords.txt" ignoreCase="true"/>
    <filter class="solr.EnglishPossessiveFilterFactory"/>
     </analyzer>
</fieldType>

1 个答案:

答案 0 :(得分:0)

考虑使用WordDelimiterFilterFactory从每个子词中删除所有格“s”。

示例:

<analyzer type="index">
  <tokenizer class="solr.WhitespaceTokenizerFactory"/>
  <filter class="solr.WordDelimiterFilterFactory" generateWordParts="1" generateNumberParts="1" catenateWords="1" catenateNumbers="1" catenateAll="0" splitOnCaseChange="1" stemEnglishPossessive="1"/>
</analyzer>

stemEnglishPossessive属性可以解决问题。实际上它的默认值是1。