我在文件中有以下字样 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并且没有用。
答案 0 :(得分:1)
从引文中可以看出,字段类型text_general
不包含<filter class="solr.PorterStemFilterFactory"/>
。但是,字段类型text_en
会更改您的字段类型并重新索引数据以获得所需的结果。
如果您在Solr中询问为何以及如何分析任何其他查询或文本内容,我建议您使用Solr Admin gui中的Analysis Screen。
你可以去那里,输入&#34; masters&#34;对于字段类型,请选择text_en
或text_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 |描述:结婚锁|描述:新娘)
此过滤器将删除复数版本...
这只会删除复数单词,而不会截断单词。
此过滤器将删除所有格(名词)的复数形式。