我正在drupal 7 环境中配置基于apache solr 的搜索。搜索正在使用 apache solr,并且正在工作,但不是我想要的方式。
当我输入诸如“员工”之类的内容时,我想要诸如“员工”、“员工”、“员工”之类的结果。
我重新启动了 apache 服务器,清除了 drupal 缓存,清除了索引,并重新索引了所有内容,但它不起作用(我只有“员工”全字之类的结果)。
所以,我更新了 schema.xml 以包含一些 edgeNGramFilter,正如其他 stackoverflow 线程上所建议的那样,这很奇怪,我还有 1 个结果,其中包含“人员配备”。但是如果我点击“你的意思是'人员配备'吗?”然后我会有更多的'人员配备'结果。
有人可以帮忙吗?
<fieldType name="text" class="solr.TextField" positionIncrementGap="100">
<analyzer type="index">
<tokenizer class="solr.WhitespaceTokenizerFactory"/>
<filter class="solr.LowerCaseFilterFactory"/>
<filter class="solr.SnowballPorterFilterFactory" language="English" protected="protwords.txt"/>
<filter class="solr.EdgeNGramFilterFactory" minGramSize="2" maxGramSize="100" side="front" />
<filter class="solr.EdgeNGramFilterFactory" minGramSize="2" maxGramSize="100" side="back" />
</analyzer>
<analyzer type="query">
<tokenizer class="solr.WhitespaceTokenizerFactory"/>
<filter class="solr.LowerCaseFilterFactory"/>
<filter class="solr.SnowballPorterFilterFactory" language="English" protected="protwords.txt"/>
<filter class="solr.EdgeNGramFilterFactory" minGramSize="2" maxGramSize="100" side="front" />
<filter class="solr.EdgeNGramFilterFactory" minGramSize="2" maxGramSize="100" side="back" />
</analyzer>
</fieldType>