如何告诉solr搜索或处理多字节数字,例如٦٩
,只是数字69
换句话说,用户已在搜索框中输入٦٩
,浏览器会将其转换为:%D9%A6%D9%A9
solr没有返回结果,因为它没有值:%D9%A6%D9%A9
如何处理这些查询???
solr config是默认配置
答案 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>