0

我有一个关于 solr 的问题,我似乎无法克服......

搜索“マルチェロ ブラック”(单词之间有正常空格)时,我得到了预期的结果(其中 15 个)。但是,当搜索“マルチェロ ブラック”(实际上在单词之间有一个表意空格 \u3000 而不是正常的空格)时,我没有得到任何结果。

我的 fieldType 配置非常基本:

<fieldType name="text_cjk" class="solr.TextField">
  <analyzer>
    <tokenizer class="solr.CJKTokenizerFactory"/>
  </analyzer>
</fieldType>

我试过添加

<charFilter class="solr.MappingCharFilterFactory" mapping="mapping-japanese.txt"/>

像映射一样

"\u3000" => "\u0020"

甚至

"\u3000" => " "

但这没有帮助。

也尝试添加

<filter class="solr.PositionFilterFactory" />

正如Language Analysis: Chinese, Japanese, Korean中所建议的那样,但随后开始在第一次搜索中获得 200+ 个结果,在第二次搜索中获得 1000+ 个结果。也不好。

运行 solr 版本 3.5,因此使用 CJKBigramFilterFactory 是没有问题的。(只是说,真的不知道这是否会有所帮助。)

阅读了很多关于 solr 配置的日本博客(感谢 Google Chrome 让这一切变得如此简单!),但所有示例都只有 CJKBigramFilterFactory,有时还有额外的 LowerCaseFilterFactory,但对我的情况似乎没有任何帮助。

有什么想法我还能尝试使这项工作吗?

4

1 回答 1

0

好吧,事实证明这是 Drupal 模块搜索 API在将查询字符串传递给 solr 之前如何解析查询字符串的问题。修复了模块的一个小补丁,请参阅问题Split query on whitespace, not only on space

于 2013-08-29T15:15:29.543 回答