我正在使用solr,在localhost设置:8983我基本上使用开箱即用的例子.我输入了一个名为"Car"的文档,另一个名为"Cars"的文档.
如果我访问:
http://localhost:8983/solr/select?q=Car
Run Code Online (Sandbox Code Playgroud)
要么
http://localhost:8983/solr/select?q=Cars
Run Code Online (Sandbox Code Playgroud)
我希望得到这两份文件.目前,我没有.
在"schema.xml"的fields标记中,"name"的条目是:
"text_general"具有以下"分析器"(没有词干分析器):
<analyzer type="index">
<tokenizer class="solr.StandardTokenizerFactory"/>
<filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt" enablePositionIncrements="true" />
<filter class="solr.LowerCaseFilterFactory"/>
</analyzer>
<analyzer type="query">
<tokenizer class="solr.StandardTokenizerFactory"/>
<filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt" enablePositionIncrements="true" />
<filter class="solr.SynonymFilterFactory" synonyms="synonyms.txt" ignoreCase="true" expand="true"/>
<filter class="solr.LowerCaseFilterFactory"/>
</analyzer>
Run Code Online (Sandbox Code Playgroud)
我试图为每个分析仪添加一个词干分析器.我试过了:
<filter class="solr.PorterStemFilterFactory"/>
<filter class="solr.KStemFilterFactory"/>
<filter class="solr.EnglishMinimalStemFilterFactory"/>
Run Code Online (Sandbox Code Playgroud)
这样做使搜索"汽车"会找到"汽车",但我永远找不到"汽车".
应该可以找到"汽车"吗?
任何帮助将不胜感激.谢谢.
Fux*_*uxi 19
有可能,只需在末尾添加porter过滤器(在LowerCaseFilterFactory之后):
<filter class="solr.SnowballPorterFilterFactory" language="English" />
Run Code Online (Sandbox Code Playgroud)
阅读更多:
如果没有特殊需要,我不会将分析器划分为索引和查询时间.您的查询时间分析器看起来非常适合在两种情况下使用它.