Solr字母转换变音符号支持

Solr字母转换变音符号支持,第1张

概述我正在使用Solr 3.x专注于德语文本,效果很好. 寻找变形金刚(öäüß)也很有效. 问题是: 我从80年代后期收到了一些存档文本,大多数计算机/软件都不支持ASCII,特别是没有支持德语的变音符号. 为此,使用了另一种表示法: ae instead of äoe instead of öue instead of üss instead of ß 这意味着,米勒这个名字被保存为穆勒. 我正在使用Solr 3.x专注于德语文本,效果很好.
寻找变形金刚(öäüß)也很有效.

问题是:
我从80年代后期收到了一些存档文本,大多数计算机/软件都不支持ASCII,特别是没有支持德语的变音符号.
为此,使用了另一种表示法:

ae instead of äoe instead of öue instead of üss instead of ß

这意味着,米勒这个名字被保存为穆勒.

回到Solr,我现在需要找到包含ue的文档 – 即使用户搜索了ü.

示例:如果我想搜索来自Müller的人的所有短信,
Solr必须找到Mueller和Müller的文本

我怎么处理这个?

这是一个适当的功能吗? – > http://wiki.apache.org/solr/UnicodeCollation(如果我完全理解文档,我不确定)

顺便说一下,通过“搜索和替换”来改变源文本不是一个选择:所有都是ö.

解决方法 正如Paige Cook已经指出的那样,你已经找到了 the relevant documentation,但由于不是每个Solr用户都知道Java,我决定用更多细节创建我自己的答案.

第一步是将过滤器添加到字段定义中:

<fIEldType>  <analyzer>    <tokenizer />    <!-- BEGIN OF important PART -->    <filter         custom="customrules.bin"        strength="primary"    />    <!-- END OF important PART -->  </analyzer></fIEldType>

下一步是创建必要的customrules.bin文件:

您必须创建一个小型Java程序才能遵循文档.不幸的是,对于非Java程序员来说,这有点困难,因为代码片段只显示了重要的部分.它还使用不与JDK一起分发的第三方库(Apache Commons IO)

下面是在不使用外部库的情况下编写customrules.bin所需的完整Java 7代码:

import java.io.*;import java.text.*;import java.util.*;public class RulesWriter {    public static voID main(String[] args) throws Exception {        RuleBasedCollator baseCollator = (RuleBasedCollator)                 Collator.getInstance(new Locale("de","DE"));        String DIN5007_2_tailorings =          "& ae,a\u0308 & AE,A\u0308"+          "& oe,o\u0308 & OE,O\u0308"+          "& ue,u\u0308 & UE,u\u0308";        RuleBasedCollator tailoredCollator = new RuleBasedCollator(                baseCollator.getRules() + DIN5007_2_tailorings);        String tailoredRules = tailoredCollator.getRules();        Writer fw = new OutputStreamWriter(                new fileOutputStream("c:/customrules.dat"),"UTF-8");        fw.write(tailoredRules);        fw.flush();        fw.close();    }}

免责声明:上面的代码编译并创建了一个customrules.bin文件,但我实际上并没有使用Solr测试创建的文件.

总结

以上是内存溢出为你收集整理的Solr字母转换/变音符号支持全部内容,希望文章能够帮你解决Solr字母转换/变音符号支持所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1062835.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-26
下一篇 2022-05-26

发表评论

登录后才能评论

评论列表(0条)

保存