使用非标准ASCII字符进行Solr搜索

时间:2012-10-11 22:25:24

标签: ruby-on-rails search solr sunspot

将以下字符串编入索引的搜索:“Ordoñez”为:

text :lastname

然后搜索为:

User.solr_search do 
  keywords 'Ordonez'
end

将返回0结果。

如何索引字符串:Ordoñez使用solr并在执行搜索时获得匹配

keywords 'Ordonez'keywords 'Ordoñez'

我在索引时尝试了ASCIIFoldingFilter,但这没有完成任务。

Here's我做了什么来尝试使这项工作。

2 个答案:

答案 0 :(得分:0)

您可能还需要在Container端添加处理。

您可以查看Why don't International Characters Work

答案 1 :(得分:0)

我的问题是有这3个字段,这些字段恰好未被使用。

<field name="firstname_text" type="textgen" stored="false" multiValued="true" indexed="true"/>
<field name="lastname_text"  type="textgen" stored="false" multiValued="true" indexed="true"/>
<field name="specialty_text" type="textgen" stored="false" multiValued="true" indexed="true"/>

不太清楚为什么但是一旦删除它们,ASCII过滤器就开始工作了。

ASCIIFoldingFilterFactory可以完成这项工作。

<analyzer>
  <tokenizer class="solr.WhitespaceTokenizerFactory"/>
  <filter class="solr.ASCIIFoldingFilterFactory"/>
  <filter class="solr.SynonymFilterFactory"/>
</analyzer>