网站卖链接,石家庄职业技术学院,邢台seo,北京手机网站开发公司分词机制详解 1.什么是分词 #xff1f;2.为什么需要分词 #xff1f;3.分词发生的阶段4.分词器的组成5.分词器的分类5.1 内置分词器5.2 中文分词器#xff08;需要插件#xff09;5.3 自定义分词器 6.电商平台商品搜索 - 自定义分词器案例6.1 场景需求6.2 自定义分词器设计… 分词机制详解 1.什么是分词 2.为什么需要分词 3.分词发生的阶段4.分词器的组成5.分词器的分类5.1 内置分词器5.2 中文分词器需要插件5.3 自定义分词器 6.电商平台商品搜索 - 自定义分词器案例6.1 场景需求6.2 自定义分词器设计6.3 分词器组件解析6.4 实际效果示例6.5 搜索场景优势6.6 实际应用索引文档搜索示例 1同义词搜索搜索示例 2型号搜索 1.什么是分词
分词Tokenization是指将文本拆分成一个个独立的 词项token的过程。在 Elasticsearch 中分词是将原始文本分解为可被索引和搜索的基本单元的处理步骤。
例如“Elasticsearch是一个强大的搜索引擎” → [“elasticsearch”, “是”, “一个”, “强大”, “的”, “搜索”, “引擎”]
2.为什么需要分词
提高搜索效率将文本分解为词项可以建立倒排索引快速定位文档。提升搜索准确性通过分词可以匹配更精确的词项而非整个文本。支持语言特性不同语言有不同的分词需求如中文需要分词英文按空格分。实现高级搜索功能如模糊搜索、同义词搜索等都依赖分词结果。
3.分词发生的阶段
分词主要发生在两个阶段
索引阶段Indexing Time当文档被索引时对文本字段内容进行分词处理。搜索阶段Search Time对查询字符串进行分词处理可使用与索引不同的分词器。
4.分词器的组成
一个完整的分词器Analyzer由三部分组成
字符过滤器Character Filters原始文本预处理 如去除 HTML 标签、替换特殊字符等。一个分词器可有 0 个或多个字符过滤器。 分词器Tokenizer将文本拆分为词项 必须且只有一个分词器。如标准分词器、中文分词器等。 词项过滤器Token Filters对词项进行进一步处理 如小写转换、去除停用词、添加同义词等。一个分词器可有 0 个或多个词项过滤器。
5.分词器的分类
5.1 内置分词器
分词器名称 分词器用途 Standard Analyzer默认分词器按词切分小写处理Simple Analyzer按非字母字符切分小写处理Whitespace Analyzer按空白字符切分不转小写Keyword Analyzer不分词将整个输入作为一个词项Pattern Analyzer使用正则表达式分词Language Analyzers针对特定语言的分词器如 english、french 等
5.2 中文分词器需要插件
分词器名称 分词器用途 IK Analyzer支持中文细粒度和智能分词两种模式Jieba Analyzer结巴中文分词HanLP Analyzer功能丰富的中文分词器THULAC清华大学中文分词器
5.3 自定义分词器
可以通过组合不同的字符过滤器、分词器和词项过滤器来创建自定义分词器
PUT /my_index
{settings: {analysis: {analyzer: {my_custom_analyzer: {type: custom,char_filter: [html_strip],tokenizer: standard,filter: [lowercase, stop]}}}}
}选择合适的分词器对搜索质量至关重要需要根据实际业务需求和数据特点来选择或定制分词方案。
6.电商平台商品搜索 - 自定义分词器案例
6.1 场景需求
假设我们正在为一个跨境电商平台构建商品搜索系统该平台主要销售电子产品有以下特点
商品标题包含多种语言英文、中文、品牌特有名词商品型号规格复杂如 “iPhone 15 Pro Max 256GB”需要支持同义词搜索如 “手机” 和 “智能手机” 应匹配相同结果需要忽略特殊字符但保留重要符号如 “Wi-Fi” 中的横线应保留
6.2 自定义分词器设计
PUT /ecommerce_products
{settings: {analysis: {char_filter: {special_chars_filter: {type: mapping,mappings: [ and,® ,™ ,【 [,】 ]]}},filter: {english_stop: {type: stop,stopwords: _english_},tech_synonyms: {type: synonym,synonyms: [手机, 智能手机, cellphone, mobile phone,笔记本, 笔记本电脑, notebook, laptop,平板, 平板电脑, tablet]},product_type_filter: {type: word_delimiter,preserve_original: true,split_on_numerics: false,split_on_case_change: false}},analyzer: {product_analyzer: {type: custom,char_filter: [html_strip,special_chars_filter],tokenizer: standard,filter: [lowercase,english_stop,tech_synonyms,product_type_filter,asciifolding]}}}},mappings: {properties: {title: {type: text,analyzer: product_analyzer,search_analyzer: product_analyzer},model_number: {type: keyword}}}
}6.3 分词器组件解析
字符过滤器Char Filters: html_strip去除 HTML 标签。special_chars_filter处理特殊字符和商标符号。 分词器Tokenizer: 使用 standard 分词器作为基础。 词项过滤器Token Filters: lowercase转为小写。english_stop去除英文停用词。tech_synonyms添加电子产品同义词。product_type_filter特殊处理产品型号保留原始形式。asciifolding将非 ASCII 字符转换。
6.4 实际效果示例
输入文本“Apple iPhone® 15 Pro Max 256GB【旗舰手机】支持Wi-Fi 6E”分词结果[“apple”, “iphone”, “15”, “pro”, “max”, “256gb”, “旗舰”, “手机”, “智能手机”, “cellphone”, “mobile phone”, “wi-fi”, “6e”]
6.5 搜索场景优势
多语言支持 搜索 “手机” 也能找到标题含 “智能手机” 或 “cellphone” 的商品。 型号规格处理 搜索 “iphone 15 pro” 能匹配完整型号 “iPhone 15 Pro Max 256GB”。但不会错误拆分 “256GB” 为 “256” 和 “gb”。 特殊符号处理 “wi-fi” 和 “wifi” 会被视为等价搜索词。但保留重要连接符确保技术术语准确性。 品牌保护 商标符号 ® 被去除但品牌名称保留。
6.6 实际应用
索引文档
POST /ecommerce_products/_doc/1
{title: Apple iPhone® 15 Pro Max 256GB【旗舰手机】支持Wi-Fi 6E,model_number: IPH15PM256
}搜索示例 1同义词搜索
GET /ecommerce_products/_search
{query: {match: {title: 智能手机}}
}能匹配到包含 “手机” 或 “cellphone” 的文档。 搜索示例 2型号搜索
GET /ecommerce_products/_search
{query: {match: {title: iphone 15 pro}}
}能匹配完整型号 “iPhone 15 Pro Max 256GB”。 这个自定义分词器设计有效解决了电商产品搜索中的多语言处理、同义词扩展、特殊符号处理等典型问题显著提升了搜索准确性和用户体验。