ARTICLE DETAIL

资讯详情

深耕编程入门与网站建设的一线实战洞察。

es怎么做拆词的

es怎么做拆词的 ES 做拆词分词的核心是分词器它在索引文档和搜索时负责把长文本切成一个个独立的词term这样才能建立倒排索引实现高效的全文搜索。这个过程主要有三种角色输入: 我喜欢看科幻电影 ↓ [字符过滤器] → [分词器] → [令牌过滤器] ↓ 输出: [我, 喜欢, 看, 科幻, 电影] 核心概念三个组件各司其职组件作用示例字符过滤器预处理文本比如去掉HTML标签bhello/b→hello分词器按规则切分文本我喜欢→我喜欢令牌过滤器标准化分词结果如转小写、去停用词Cats→cat️ 如何配置和使用1. 使用内置分词器最常用比如用ik_smart做粗粒度分词或者用ik_max_word做细粒度分词POST_analyze{analyzer:ik_smart,text:中华人民共和国国歌}结果类似[中华人民共和国, 国歌]。2. 为字段指定分词器PUT/library_books{mappings:{properties:{title:{type:text,analyzer:ik_max_word,// 索引时用细粒度分词search_analyzer:ik_smart// 搜索时用粗粒度分词}}}}3. 自定义分词器灵活但复杂PUT/my_index{settings:{analysis:{analyzer:{my_custom_analyzer:{type:custom,tokenizer:standard,char_filter:[html_strip],filter:[lowercase,stop]}}}}} 测试与调试测试现有分词器POST/library_books/_analyze{field:title,text:三体科幻小说}查看某个词在倒排索引中的位置GET/library_books/_termvectors/123{fields:[title],term_statistics:true}一个推荐的配置示例PUT/library_books{mappings:{properties:{title:{type:text,analyzer:ik_max_word,search_analyzer:ik_smart},author:{type:keyword// 不用分词精准匹配作者},content:{type:text,analyzer:ik_max_word}}}}需要注意分词器的选择会直接影响搜索结果一旦创建索引就不能修改建索引前最好多测试几种配置。⚠️ 关键提醒*分词器不是万能的人名、专业术语可能需要专门优化*性能细粒度分词ik_max_word索引会更大但搜索结果更全*调试工具用_analyzeAPI 手动测试确保符合业务预期
返回列表