solr:如何匹配单数和复数单词

时间:2016-07-21 17:59:19

标签: solr

我在文件中有以下字样 1)甜蜜 2)大师

text_general

的配置
<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" />
    <!-- in this example, we will only use synonyms at query time
    <filter class="solr.SynonymFilterFactory" synonyms="index_synonyms.txt" ignoreCase="true" expand="false"/>
    -->
    <filter class="solr.LowerCaseFilterFactory"/>

  </analyzer>
  <analyzer type="query">
    <tokenizer class="solr.StandardTokenizerFactory"/>
    <filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt" />
    <filter class="solr.SynonymFilterFactory" synonyms="synonyms.txt" ignoreCase="true" expand="true"/>
    <filter class="solr.LowerCaseFilterFactory"/>

  </analyzer>
</fieldType>

如何确定用户是否搜索  1) master 它匹配主人  2)大师它匹配大师  3)甜心它与甜心匹配

我使用了snowballporter并且没有用。

2 个答案:

答案 0 :(得分:1)

从引文中可以看出,字段类型text_general不包含<filter class="solr.PorterStemFilterFactory"/>。但是,字段类型text_en会更改您的字段类型并重新索引数据以获得所需的结果。

如果您在Solr中询问为何以及如何分析任何其他查询或文本内容,我建议您使用Solr Admin gui中的Analysis Screen

你可以去那里,输入&#34; masters&#34;对于字段类型,请选择text_entext_general。您将看到text_en和输入&#34;主人&#34;,令牌&#34;主人&#34;不匹配,只有&#34;主人&#34;。但是,使用text_general字段和输入&#34;主人&#34;进行分析,两者都是&#34;主人&#34;和#34;主人&#34;匹配。

答案 1 :(得分:0)

SnowballPorterFilterFactory的一个问题是它不仅更改了单词,而且还添加了单词...

这是来自onymous.txt文件... 婚礼,结婚,一对,拥护,婚姻,团结,联盟,合并,协会,联邦,夫妻关系,夫妻关系,联合体,偶合,婚姻,一夫一妻制,婚姻,交配,婚姻,合并,一夫一妻制,婚姻,抵押,圣礼,配偶,结婚,婚礼,仪式,婚礼,新娘

SnowballPorterFilterFactory将其更改为此... (description:wed | description:marri | description:coupl | description:espous | description:marriag | description:unit | description:allianc | description:amalgam | description:associ | description:confeder | description:conjug | description:connubi | description :consortium |描述:coupl |描述:espous |描述:matrimoni |描述:mate |描述:合并|描述:monogami |描述:婚姻|描述:pledg |描述:圣礼|描述:配偶|描述:星期三|描述:星期三|描述:ceremoni |描述:结婚锁|描述:新娘)

此过滤器将删除复数版本...

这只会删除复数单词,而不会截断单词。

此过滤器将删除所有格(名词)的复数形式。