【问题标题】:How to deal with multibyte search in solr?如何处理 solr 中的多字节搜索?
【发布时间】:2013-11-23 08:46:59
【问题描述】:

如何告诉 solr 搜索或处理像 ٦٩ 这样的多字节数字,它只是数字 69

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

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

如何处理这样的查询???

solr 配置是默认配置

【问题讨论】:

  • 你的意思是在 solr 查询中?之前解析它并给他翻译的价值?还是字段中填充了这种类型的数据?
  • 在我的情况下填充了 69 并且用户尝试搜索 ٦٩ ,解析和翻译查询就可以了

标签: solr multibyte


【解决方案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>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-10-21
    • 2016-01-29
    • 1970-01-01
    • 2013-01-20
    • 2011-11-06
    • 2017-04-23
    • 2012-07-08
    相关资源
    最近更新 更多