找回密码
立即注册
搜索
热搜: Java Python Linux Go
发回帖 发新帖

3705

积分

0

好友

491

主题
发表于 4 小时前 | 查看: 4| 回复: 0

云栈社区的技术讨论中,不少开发者对 Elasticsearch 的停用词过滤细节仍有疑问。自定义词典与停用词是优化中文搜索准确性的核心组合,下面就以 IK 分词器为例,演示从默认词库到自定义中文停用词的完整配置过程。

为什么要使用停用词

Elasticsearch中,自定义词典和停用词过滤是优化中文搜索效果的核心手段。自定义词典用于补充领域专属词汇、修正分词结果,而停用词过滤则剔除“的”“是”“在”等无实际语义的高频词,减少索引冗余并提升查询准确性。

IK分词器中如何使用停用词

Elasticsearch 安装好 analysis-ik 中文插件后,在 config/analysis-ik 目录下会生成两个停用词文件:stopword.dicextra_stopword.dic。其中 stopword.dic 是英文停用词,默认即生效;extra_stopword.dic 是中文停用词,默认并不会被加载。

1. 查看 stopword.dic(英文停用词)默认是否生效

curl -X POST "https://127.0.0.1:9200/_analyze?pretty" -H 'Content-Type: application/json' -d '{"analyzer":"ik_max_word","text":"She is a beautiful girl"}' -u elastic:654321 -k

分词结果:she、beautiful、girl,而 isa 因为是停用词没有出现——stopword.dic(英文停用词)默认生效。

2. 查看 extra_stopword.dic(中文停用词)默认是否生效

curl -X POST "https://127.0.0.1:9200/_analyze?pretty" -H 'Content-Type: application/json' -d '{"analyzer":"ik_max_word","text":"也了仍电脑"}' -u elastic:654321 -k

分词结果:也、了、仍、电脑,所有词都被切开——extra_stopword.dic(中文停用词)默认未生效。

3. 如何让 extra_stopword.dic(中文停用词)生效

我们需要配置 IK Analyzer 的配置文件来加载这个停用词文件。
编辑 config/analysis-ik/IKAnalyzer.cfg.xml,加入以下内容:

<properties>
    <comment>IK Analyzer 扩展配置</comment>
     <!--用户可以在这里配置自己的扩展停止词字典-->
    <entry key="ext_stopwords">extra_stopword.dic</entry>
</properties>

保存后重启 Elasticsearch,再次验证中文停用词:

curl -X POST "https://127.0.0.1:9200/_analyze?pretty" -H 'Content-Type: application/json' -d '{"analyzer":"ik_max_word","text":"也了仍电脑"}' -u elastic:654321 -k

分词结果只剩“电脑”,说明 extra_stopword.dic 已生效,也、了、仍作为停用词已被过滤。

注意事项

  1. 不同领域的停用词可能不同
    例如电商领域,停用词可能是“商品”“产品”“购买”等高频低价值词;社交媒体则可能是“分享”“点赞”“评论”等平台通用词。
  2. 谨慎选择停用词
    过度过滤会丢失语义信息,造成查询遗漏。
  3. 区分索引与查询分析器
    可在索引时使用严格停用词,查询时采用宽松策略(甚至不禁用),以提高召回率。
  4. 结合同义词处理
    停用词与同义词常配合使用,构建更智能的搜索体验。
  5. 监控与迭代
    通过用户搜索日志分析高频无效词,持续优化停用词表。



上一篇:AI上下文管理:滑动窗口、结构化摘要、隔离与卸载——突破Token限制的四重防线
下一篇:Anthropic Claude Mythos 5 VS OpenAI GPT-5.6:发布候选版对决迫近
您需要登录后才可以回帖 登录 | 立即注册

手机版|小黑屋|网站地图|云栈社区 ( 苏ICP备2022046150号-2 )

GMT+8, 2026-6-7 22:50 , Processed in 0.638111 second(s), 41 queries , Gzip On.

Powered by Discuz! X3.5

© 2025-2026 云栈社区.

快速回复 返回顶部 返回列表