我遇到过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,但在我的情况下似乎没有任何帮助。
任何想法我还能尝试做些什么吗?
答案 0 :(得分:0)
我们使用Basis tech's Rosette for Lucene & Solr,但不是免费的。
答案 1 :(得分:0)
嗯,实际上它确实是Drupal模块Search API在将查询字符串传递给solr之前如何解析查询字符串的问题。修复了模块的小补丁,请参阅问题Split query on whitespace, not only on space。