如何在solr中处理多字节搜索?

时间:2013-11-23 08:46:59

标签: solr multibyte

如何告诉solr搜索或处理多字节数字,例如٦٩,只是数字69

换句话说,用户已在搜索框中输入٦٩,浏览器会将其转换为:%D9%A6%D9%A9

solr没有返回结果,因为它没有值:%D9%A6%D9%A9

如何处理这些查询???

solr config是默认配置

1 个答案:

答案 0 :(得分:1)

我认为你需要使用solr.MappingCharFilterFactory https://cwiki.apache.org/confluence/display/solr/CharFilterFactories

将它们从这些字符转换为数字

所以基本上你可以有一个文件mapping-ArabicNumbersToASCII.txt,其中包含:

"٠" => "0"
"١" => "1"
"٢" => "2"
"٣" => "3"
...

然后将它用作分析器,如下所示:

<analyzer>
  <charFilter class="solr.MappingCharFilterFactory" 
    mapping="mapping-ArabicNumbersToASCII.txt"/>
  <tokenizer ...>
  [...]
</analyzer>