solr查询中的表意空间

时间:2013-08-28 14:27:38

标签: drupal solr drupal-7 cjk analyzer

我遇到过solr的问题,我似乎无法克服......

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

我的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,但在我的情况下似乎没有任何帮助。

任何想法我还能尝试做些什么吗?

2 个答案:

答案 0 :(得分:0)

我们使用Basis tech's Rosette for Lucene & Solr,但不是免费的。

答案 1 :(得分:0)

嗯,实际上它确实是Drupal模块Search API在将查询字符串传递给solr之前如何解析查询字符串的问题。修复了模块的小补丁,请参阅问题Split query on whitespace, not only on space