我正在使用Apache SOLR进行全文搜索,现在我无法过滤出绚丽的撇号。
用户可以输入查询,有时他们使用'印刷撇号' - 它不是一个直接上下撇号,它略微卷曲并向右倾斜,如下所示:
柏拉图的批判
所以,搜索像这样的词
柏拉图的批判
Platos Critique
没有结果,因为'和'在技术上是不同的字符。 但是我希望在这些搜索中获得名为“Plato's Critique”的记录。
我尝试了一些不同的配置选项(并在进行更改后重新编制索引)。
标准过滤器工厂
<fieldType name="text" class="solr.TextField" omitNorms="false">
<analyzer>
<tokenizer class="solr.StandardTokenizerFactory"/>
<filter class="solr.StandardFilterFactory" />
<filter class="solr.LowerCaseFilterFactory"/>
</analyzer>
</fieldType>
ICUFoldingFilter
<fieldType name="text" class="solr.TextField" omitNorms="false">
<analyzer>
<tokenizer class="solr.StandardTokenizerFactory"/>
<filter class="solr.LowerCaseFilterFactory"/>
<filter class="solr.ICUFoldingFilterFactory"/>
</analyzer>
</fieldType>
答案 0 :(得分:0)
写下这个以防其他人可以从中受益 - 我必须将ICUFoldingFilterFactory应用于一个ngram的textField。我之前没有采取任何改变,因为我想搜索的所有textField都是ngrams。