-1

我是 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>
4

1 回答 1

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。

于 2013-01-17T13:00:56.207 回答