You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Solr中文场景下CJK Tokenizer实现示例及可用性相关咨询

配置可用性说明

你给出的CJKTokenizer直接配置仅可在Solr 4.3及更早的版本中正常运行,该组件从Lucene 4.4版本开始已被正式弃用,5.x及以上版本的Solr已经完全移除了org.apache.solr.analysis.CJKTokenizerFactory类,更高版本环境下该配置会直接报错无法启动。

弃用原因及官方推荐替代方案

官方废弃CJKTokenizer的原因是其功能可以被更灵活的分词器+过滤器组合替代,目前公开场景普遍使用的StandardTokenizer + CJKBigramFilter组合就是官方推荐的等价替代方案,该方案既可以实现原有CJKTokenizer的中日韩二元分词效果,还支持自定义是否输出单字、单独控制不同语种的分词规则,参考配置如下:

<fieldType name="text_cjk" class="solr.TextField">
  <analyzer>
    <tokenizer class="solr.StandardTokenizerFactory"/>
    <!-- 归一化全角半角字符 -->
    <filter class="solr.CJKWidthFilterFactory"/>
    <filter class="solr.LowerCaseFilterFactory"/>
    <!-- han参数控制中文分词,outputUnigrams设为true会同时输出单字,适合短文本搜索场景 -->
    <filter class="solr.CJKBigramFilterFactory" han="true" hiragana="true" katakana="true" hangul="true" outputUnigrams="false"/>
  </analyzer>
</fieldType>

中文场景优化建议

如果你的站点搜索对中文准确率要求更高,可以选择专门适配中文的第三方分词器,比如IK分词器、HanLP分词器,这类分词器支持自定义词典、停用词过滤、词性筛选等功能,比通用CJK分词方案更贴合中文搜索的实际需求。

旧版本实现参考

如果你的Solr版本确实为4.3及更早的版本需要使用CJKTokenizer,可以直接对应版本的Lucene源码包中org.apache.lucene.analysis.cjk.CJKTokenizer的源码实现,核心逻辑为中日韩字符按二元切分,非CJK字符按空白、标点分割。

内容的提问来源于stack exchange,提问作者Vivek Venugopalan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.12 10:06:03