我使用solr作为搜索引擎.我有一个文本字段包含重音文本的情况"María".当用户搜索时"María",它正在给予重新开始.但是当用户搜索"Maria"它时没有给出任何结果.
我的架构定义如下所示:
<fieldtype name="my_text" class="solr.TextField">
<analyzer type="Index">
<tokenizer class="solr.WhitespaceTokenizerFactory"/>
<filter class="solr.LowerCaseFilterFactory"/>
<filter class="solr.EdgeNGramFilterFactory" minGramSize="1" maxGramSize="32" side="front"/>
</analyzer>
<analyzer type="query">
<tokenizer class="solr.WhitespaceTokenizerFactory"/>
<filter class="solr.LowerCaseFilterFactory"/>
</analyzer>
</fieldtype>
Run Code Online (Sandbox Code Playgroud)
请帮忙解决这个问题.
如果您使用的是solr> 3.x,则可以尝试使用solr.ASCIIFoldingFilterFactory,它将所有重音字符从基本的ascii 127字符集更改为其非重音版本.
记得把它放在你配置的任何堵塞过滤器之后(你没有使用过,所以你应该没问题).
所以你的配置看起来像:
<fieldtype name="my_text" class="solr.TextField">
<analyzer type="Index">
<tokenizer class="solr.WhitespaceTokenizerFactory"/>
<filter class="solr.LowerCaseFilterFactory"/>
<filter class="solr.ASCIIFoldingFilterFactory"/>
<filter class="solr.EdgeNGramFilterFactory" minGramSize="1" maxGramSize="32" side="front"/>
</analyzer>
<analyzer type="query">
<tokenizer class="solr.WhitespaceTokenizerFactory"/>
<filter class="solr.LowerCaseFilterFactory"/>
<filter class="solr.ASCIIFoldingFilterFactory"/>
</analyzer>
</fieldtype>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4448 次 |
| 最近记录: |