当前位置: 首页 > news >正文

网站建设与网站管理网站怎么显示百度名片

网站建设与网站管理,网站怎么显示百度名片,建设局属于什么行业,网站首页确认书文章目录 ElasticSearch中常见的分词器介绍前言分词器的作用如何指定分词器分词器的组成分词器的类型标准分词器空格分词器简单分词器关键词分词器停用词分词器IK分词器NGram分词器正则匹配分词器语言分词器自定义分词器 ElasticSearch中常见的分词器介绍 前言 ElasticSearch是… 文章目录 ElasticSearch中常见的分词器介绍前言分词器的作用如何指定分词器分词器的组成分词器的类型标准分词器空格分词器简单分词器关键词分词器停用词分词器IK分词器NGram分词器正则匹配分词器语言分词器自定义分词器 ElasticSearch中常见的分词器介绍 前言 ElasticSearch是一个高效的分布式搜索引擎其中分词器是它的核心组件之一平常开发中选择一个合适的分词器可以很大程度上提高检索效率所以特意花点时间快速了解ElasticSearch中各大常见的分词器本文也将分别介绍ElasticSearch中常见的几大分词器的特点、适用场景以及如何使用 推荐阅读 ElasticSearch快速入门_知识汲取者的博客-CSDN博客 分词器的作用 分词器是在搜索引擎和文本处理中起关键作用的组件它负责将文本切分成一个个有意义的词语以建立索引或进行搜索和分析。 上面可能说的有一些太官方了详细点说就是ES搜索引擎是根据词条进行检索的这里的词条相当于MySQL中的索引是ElasticSearch能实现海量数据高效检索的核心在MySQL中如果我们不恰当的建立索引就会影响数据库的查询性能比如我们为区分度不大的字段建立索引SQL优化器评测发现走索引性能和全表扫描的性能差不多这时候就直接进行全表扫描了此时索引就一点作用都没有了同理这个分词也是一样的道理他都目的也是将一个一句话分成若干个词条以词条为索引以此来提高检索的效率和检索的正确性。 再举一个实际的例子比如这里有一句话“他们在商店买了一些苹果手机和一些苹果”如果我们分词时将苹果手机进行拆分我们搜索苹果手机可能无法搜索出带有苹果手机的文档 他们 在 商店 买 一些 苹果 手机 和 一些 苹果而一下的分词则可以正确搜索出带有苹果手机的词条 他们 在 商店 买 了 一些 苹果手机 和 一些 苹果文本切分 分词器根据一定的规则将文本切分为单个的词语或词汇单元。这个过程通常涉及到处理空格、标点符号、停用词等。标准化 分词器可以对词语进行标准化例如将所有字符转为小写以实现大小写不敏感的搜索。这有助于提高搜索的准确性。去除停用词 分词器通常会去除一些常见的停用词这些词语在搜索中往往没有实际的意义例如 “and”, “the”, “is” 等。词干化 对于词语的各种形式如单数和复数、动词的不同时态等分词器可以将它们转化为同一个基本形式以提高搜索的准确性。自定义规则 分词器允许用户根据具体需求定义自己的切分规则、标准化规则等以适应特定的搜索场景。支持多语言 对于全球化的应用分词器能够支持多种语言包括中文、英文、法文等以确保对不同语言的文本都能有效地进行处理。支持搜索建议 通过使用边缘 n-gram 等技术分词器可以支持搜索建议功能提供更智能的搜索提示。 如何指定分词器 方式一创建索引时通过映射直接指定分词器 PUT /your_index_name {mappings: {properties: {your_field_name: {type: text,analyzer: your_analyzer_name},// other fields...}} }Step2修改索引时通过修改映射修改分词器 PUT /your_index_name/_mapping {properties: {your_field_name: {type: text,analyzer: your_analyzer_name},// other fields...} }注意 如果不指定分词器则默认使用标准分词器 standard不同的字段可以使用不同的分词器根据实际需求选择适当的分词策略ElasticSearch默认自带Standard Analyzer、Whitespace Analyzer、Simple Analyzer、Keyword Analyzer、Stop Analyzer等分词器其它分词器比如IK Analyzer需要手动下载 分词器的组成 分词器主要由以下三部分组成 Character Filters字符过滤器这一步针对原始文本进行预处理对文本中的字符进行修改或删除。例如去除 HTML 标签、替换特定字符等。Tokenizer分词器分词器将经过字符过滤器处理后的文本切分成一个个的词条形成一个词条流。切分的规则可以是按空格、标点符号等或者根据某种特定的算法比如边缘 n-gram。Token Filters词汇过滤器这一步对切分后的词条流进行进一步的处理。可以进行词条的大小写转换、删除停用词常用但无实际意义的词语、词干化等操作。词汇过滤器对于调整文本以适应索引和搜索的需求非常重要。 分词器的类型 分词器分词依据特点Standard Analyzer空格、标点符号小写化处理、过滤符号Whitespace Analyzer空格不进行小写化处理、保留所有字符Simple Analyzer非字母符号、数字小写化处理、过滤符号、支持中文拼音分词Keyword Analyzer无将整个输入作为一个词条Stop Analyzer空格小写化处理、过滤停用词IK Analyzer词典中文分词Edge NGram Analyzern-gram按指定步长进行分词Pattern Analyzer正则匹配字符较为灵活Language Analyzer空格支持多国语言Custom Analyzer自定义灵活 标准分词器 Standard Analyzer默认 类型 standard特点 根据空格和标点符号分割文本进行小写化处理过滤符号 适用场景适用于通用的全文搜索 示例 原始文本The quick brown fox jumps over the lazy dog. 分词结果[the, quick, brown, fox, jumps, over, the, lazy, dog]空格分词器 Whitespace Analyzer: 类型 whitespace特点 根据空格分割文本不进行小写化保留所有字符 适用场景适用于不需要额外处理的精确匹配场景。 示例 原始文本The quick brown fox jumps over the lazy dog. 分词结果[The, quick, brown, fox, jumps, over, the, lazy, dog.]简单分词器 Simple Analyzer: 类型 simple 特点 按非字母切分连续的数字为一个词条进行小写处理过滤符号中文字单独建索引并且把中文字转成拼音后也建搜索这样就能同时支持中文和拼音检索。另外把拼音首字母也建索引这样搜索 zjl 就能命中 “周杰伦”。 适用场景适用一些简单的中文分词 示例 原始文本The quick brown fox jumps over the lazy dog. 分词结果[the, quick, brown, fox, jumps, over, the, lazy, dog]关键词分词器 Keyword Analyzer: 类型 keyword特点 将整个输入视为单个关键字不进行分词。适用场景适用于不需要分词的场景比如精确匹配。 示例 原始文本The quick brown fox jumps over the lazy dog. 分词结果[The quick brown fox jumps over the lazy dog.]停用词分词器 Stop Analyzer: 类型 stop特点 去除停用词is、a、the……根据空格分割文本进行小写化处理。 适用场景适用于需要去除常见停用词的场景。 示例 原始文本The quick brown fox jumps over the lazy dog. 分词结果[quick, brown, fox, jumps, over, lazy, dog]IK分词器 IK Analyzer: 详情请参考https://github.com/medcl/elasticsearch-analysis-ik 类型 ik_max_word 会将文本做最细粒度的拆分会穷尽各种可能的组合适合 Term Queryik_smart会做最粗粒度的拆分不会对同一个词进行重复分词适合 Phrase 查询 适用场景适用于中文文本分析。 示例 原始文本中华人民共和国国歌 ik_max_word分词结果[中华人民共和国, 中华人民, 中华, 华人, 人民共和国, 人民, 人, 民, 共和国, 共和, 和, 国国, 国歌] ik_smart分词结果[中华人民共和国, 国歌]ik分词器的使用步骤 Step1下载ik分词器Step2将下载的压缩包解压到 Elasticsearch 插件目录plugins 文件夹中Step3重启ElasticSearchStep4直接指定即可 NGram分词器 NGram Analyzer: 详情参考ElasticSearch之ngram分词器-CSDN博客 类型 edge_ngram从单词的开头提取 n-gramngram在整个单词中提取 n-gram 适用场景适用于前缀搜索和搜索建议 示例 原始文本I am Chinese.edge_ngram分词结果 n2bigram: [I am, am Chinese.] n3trigram: [I am Chinese.] n4four-gram: [I am Chinese.]ngram分词结果 n2bigram: [I am, am Chinese.] n3trigram: [I am Chinese.] n4four-gram: [I am Chinese.]备注 NGram Analyzer 不会过滤符号NGram Analyzer默认的步长是1 {settings: {// 创建分词器analysis: {analyzer: {my_edge_ngram_analyzer: {tokenizer: standard, // 指定分词器filter: [my_edge_ngram_filter] // 指定词汇过滤器}},filter: {my_edge_ngram_filter: {type: edge_ngram,min_gram: 1, // 词汇最小长度为一个字符注意一个单词、数字、中文都是一个字符max_gram: 10 // 词汇最大长度为10个字符}}}},mappings: {properties: {content: {type: text,analyzer: my_edge_ngram_analyzer // 使用我们配置的分词器}}} }知识拓展n-gram 概念 n-gram 是一种文本处理的方法其中 “n” 表示包含的元素的数量。在自然语言处理和信息检索中n-gram 通常指的是连续的 n 个单词或字符序列。 Unigram1-gram 包含一个单词的序列。例如对于句子 “The quick brown fox”每个单词都是一个 unigram。Bigram2-gram 包含两个相邻单词的序列。例如对于句子 “The quick brown fox”bigrams 包括 “The quick”、“quick brown”、“brown fox”。Trigram3-gram 包含三个相邻单词的序列。例如对于句子 “The quick brown fox”trigrams 包括 “The quick brown”、“quick brown fox”。 这个 n 表示按照几个单词来进行划分 正则匹配分词器 Pattern Analyzer 类型pattern特点根据正则匹配进行分词 {settings: {analysis: {analyzer: {my_pattern_analyzer: {type: pattern,pattern: \\W // 正则表达式模式表示使用非单词字符作为分隔符}}}},mappings: {properties: {content: {type: text,analyzer: my_pattern_analyzer}}} }上诉配置的 Pattern Analyzer 与 Standard Analyzer的效果是一模一样的 语言分词器 Language Analyzer 类型 english英语分词器french法语分词器 特点 支持多个不同国家语言的分词但就是没有支持中文的中文分词器还得靠国内大佬或机构开发应用英文的 Stop Analyzer停用词过滤器单词小写化不会过滤符号 适用场景一些国际化的软件可能会用但是面向国内用户基本上用不上 {mappings: {properties: {content: {type: text,analyzer: english}}} } 原始文本The quick brown fox jumps over the lazy dog. 分词结果[quick, brown, fox, jumps, over, lazy, dog]自定义分词器 Custom Analyzer: 类型 custom 特点 可以根据具体需求自定义分词器包括指定分词器、字符过滤器、标记过滤器等。 适用场景现有分词器不满足当前功能或者想要实现更加高效且灵活的分词 实现自定义分词器的步骤 Step1定义字符过滤器Char Filter可以通过字符过滤器执行预处理例如删除 HTML 标签或进行字符替换。Step2定义分词器Tokenizer 分词器负责将文本切分为单词或词条。可以选择现有的分词器也可以创建自定义的分词逻辑。Step3定义词汇过滤器Token Filter 可以通过词汇过滤器对切分后的单词进行进一步处理例如小写处理、停用词过滤、同义词处理等。Step4创建 Custom Analyzer 将定义的字符过滤器、分词器和词汇过滤器组合成一个自定义的 Custom Analyzer。Step5将 Custom Analyzer 应用到字段 在创建索引时将自定义的 Custom Analyzer 分配给相应的字段。 示例 在下面的示例中my_analyzer 是一个自定义的 Custom Analyzer包含了一个 HTML 标签过滤器、标准分词器和小写过滤器。该分析器被应用于名为 “content” 的字段。实际上你可以根据需求自定义各个组件以满足你的分词需求。 {settings: {analysis: {// 指定字符过滤器char_filter: {my_char_filter: {type: html_strip // 去除文本中的 HTML 标签的字符过滤器}},// 指定分词器tokenizer: {my_tokenizer: {type: standard // 指定标准分词器按照标准分词器进行分词}},// 指定词汇过滤器filter: {my_filter: {type: lowercase // 小写化处理}},// 创建自定义分词器analyzer: {my_analyzer: {type: custom,char_filter: [my_char_filter],tokenizer: my_tokenizer,filter: [my_filter]}}}},mappings: {properties: {content: { // 给 content 字段应用 自定义分词器type: text,analyzer: my_analyzer}}} }原始文本pThis is strongbold/strong text./p 分词结果[this, is, bold, text]参考资料 Anatomy of an analyzer | Elasticsearch Guide 8.11| ElasticElasticSearch 分词器了解一下 - 知乎 (zhihu.com)
http://www.pierceye.com/news/273246/

相关文章:

  • 技术支持 盈岚网站建设典当行网站策划
  • 如何找到网站的模板页面中国优秀网站设计
  • 金融公司 网站开发简易个人博客网站源码
  • 小企业网站建设哪找网站制作软件dw
  • 百度收录提交网站后多久收录重庆个人房源网
  • 深圳网站建设制作公司排名网站设计怎么收费
  • 免费培训学校网站源码成免费crm破解版
  • w网站建设湖北建设厅举报网站
  • 营销型网站分为哪几种乐山网站建设公司
  • 淘宝网站建设类别好看的网站后台界面
  • 海口网站建设工作中企动力全球邮企业邮箱
  • 青岛网站制作排名绵阳做网站优化
  • 扬州市建设工程造价管理站网站开发建设网站
  • 广州网站设计公司济南兴田德润o评价潍坊响应式网站建设要多久
  • 网站模板如何优化平阳县建设局网站
  • 厦门外贸网站找谁可以做app的网站
  • 本地电脑静态网站建设游戏代理平台免费
  • 网站建设公司的成本有哪些内容wordpress admin空白
  • 高端网站建设如何收费济南行业网站建设
  • 昆明网站制作专业麦当劳订餐网站 是谁做的
  • 网站代备案公司名称网页游戏怎么搭建
  • 教师在哪些网站可以做兼职做平面的公司网站
  • php网站后台程序做游戏ppt下载网站有哪些
  • 柳州正规网站制作公司佛山企业名录黄页
  • 企业网站做备案网站换域名 百度收录
  • 平面网站模版网站建设需要的费用
  • 营销型网站案例展示如何做网赌网站
  • 商融交通建设工程有限公司网站wordpress的伪静太文件
  • 网站rar文件做sorry动图的网站
  • 有合作社做网站得不备案期间关网站吗