我正在尝试用Solr来索引一些中文文档,但是看起来Solr没有索引一些分词。
我使用的分析器是IK分析器http://code.google.com/p/ik-analyzer/。
要建立索引的字段:
<field name="hospital_alias_splitted" type="cn_ik" indexed="true" stored="true" multiValued="true" omitNorms="false"/>cn_ik定义:
<fieldType name="cn_ik" class="solr.TextField" positionIncrementGap="100">
<analyzer>
<tokenizer class="org.wltea.analyzer.solr.IKTokenizerFactory" useSmart ="false"/>
</analyzer>
例如,将被索引的单词是"AB“(不带引号)。使用中文分析器进行分词后,我得到了3个标记,它们是"AB“、"A”和"B“。
正如我们所看到的,第一个令牌"AB“包含以下两个令牌。
在将这些标记提供给Solr之后,看起来Solr只有索引"AB“、"A”和"B“被忽略。因为当我搜索"A“或搜索"B”时,没有得到任何结果。
我猜当Solr索引"AB“时,它已经到达了索引单词的末尾,所以"A”和"B“被忽略了。
使用Luke和Analysis Request Handler不会给我更多提示。我不确定这是一个bug还是Solr的一个特性。
有什么意见或建议吗?
谢谢:)
发布于 2012-09-24 08:29:49
(因为我无法对这个问题发表评论,所以我在这里打字)
我建议你尝试一下不同的分析器。因为你没有告诉我们你的分析器,我假设你使用的是默认的东西,比如CJK等等。
据我所知,有更多的分析器用于中文和像中文这样的两个单词之间没有空格的语言。他们也可能会对你有所帮助。
不过,如果能看到您的模式中有关该字段的某些部分,那就太好了……
编辑:你也可以勾选this link
https://stackoverflow.com/questions/12549695
复制相似问题