首页 > 其他分享 >Elasticsearch-定制分词器

Elasticsearch-定制分词器

时间:2024-04-07 16:34:13浏览次数:16  
标签:index analyzer standard filter Elasticsearch 分词器 定制 my 分词

一、内置分词器

  1. 分词步骤
    1). character filter:在一段文本进行分词之前,先进行预处理,eg:最常见的过滤html标签(hello -> hello), & -> and ( I & you -> I and you)
    2). tokenizer:分词, eg:hello you and me -> hello, you, and, me
    3). token filter:一个个小单词标准化转换 lowercase(转小写) , stop word(停用词,了 的 呢), dogs -> dog(单复数转换), liked ->like(时态转换), Tom -> tom(大小写转换), a/the/an ->干掉, mother -> mom(简写), small -> little(同义词).
    standard

分词三个组件,character filter(预处理),tokenizer(分词),token filter(标准化转换)

  • standard tokenizer:以单词边界进行切分
  • standard token filter:什么都不做
  • lowercase token filter:将所有字母转换为小写
  • stop token filter(默认被禁用): 移除停用词 eg: a in the is 等
  1. 修改分词器设置
    启用english停用词
DELETE my_index

PUT /my_index
{
  "settings": {
    "analysis": {
      "analyzer": {
        "es_std": { # 自定义分词器名称
          "type": "standard",
          "stopwords": "_english_" # 启用english停用词
        }
      }
    }
  }
}

使用默认分词查询结果

GET /my_index/_analyze
{
  "analyzer": "standard",
  "text": "a dog in the house"
}

使用开启的停用词分词查询结果

GET /my_index/_analyze
{
  "analyzer": "es_std",
  "text": "a dog in the house"
}

二、自定义分词器

DELETE my_index


PUT /my_index
{
  "settings": {
    "analysis": {
      "char_filter": { # 预处理时自定义
        "&_to_and": { # 名称
          "type": "mapping",
          "mappings": ["&=>and"] # 将&转换为and
        }
      },
      "filter": { # 标准化转换时自定义
        "my_stopwords": { # 名称
          "type": "stop",
          "stopwords": ["the", "a"] # 去掉的停用词
        }
      }, 
      "analyzer": {
        "my_analyzer": {
          "type": "custom",
          "char_filter": ["html_strip", "&_to_and"], 
          "tokenizer": "standard",
          "filter": ["lowercase", "my_stopwords"]
        }
      }
    }
  }
}

验证

GET my_index/_analyze
{
  "analyzer": "my_analyzer",
  "text": "tom&jerry are a friend in the house, <a> HAHA!!!"
}

标签:index,analyzer,standard,filter,Elasticsearch,分词器,定制,my,分词
From: https://www.cnblogs.com/l-zl/p/18119214

相关文章

  • 外卖跑腿小程序定制开发功能大全
    同城外卖的兴起,为人们提供了更加便捷、快速的用餐选择。如果您对移动应用开发感兴趣,本文将为您提供从零开始开发同城外卖APP的详细指南。一、需求分析与规划在开始开发之前,首先需要明确同城外卖的核心功能和特性。您可以考虑以下问题来进行需求分析:用户应该能够浏览餐厅菜单......
  • (免费赠源码)计算机毕设题目:基于微信小程序的旅游服务系统 77397(开题答辩+程序定制+全套
    springboot旅游服务系统小程序摘 要随着我国经济迅速发展,人们对手机的需求越来越大,各种手机软件也都在被广泛应用,但是对于手机进行数据信息管理,对于手机的各种软件也是备受用户的喜爱,旅游服务系统小程序管理系统被用户普遍使用,为方便用户能够可以随时进行旅游服务系统小......
  • 计算机毕业设计项目,SSM健康生活博客小程序 23497(开题答辩+程序定制+全套文案 )上万套实
    SSM健康生活博客小程序摘 要本文设计了一种基于SSM框架的健康生活博客小程序,为人们提供了运动视频教学、博客信息分享,用户能够方便快捷地查看资讯、搜索健康方面的相关信息、还能发布个人生活博客等。健康生活博客小程序采取面对对象的开发模式进行软件的开发和硬体的架设......
  • 计算机毕业设计项目,springboot+校园兼职系统 22161(开题答辩+程序定制+全套文案 )上万套
    Springboot校园兼职系统的设计与实现摘要随着经济的发展,竞争的激烈,就业形式日趋严峻,为了在毕业后能够更好地适应社会,很多在校大学生选择了从事兼职工作,一方面缓解了家庭的经济压力,更重要的是在一定程度上接触了社会,获取了一些工作经验,提高了自己的综合实力。大学生兼职已......
  • 使用阿里云试用Elasticsearch学习:1.1 基础入门——入门实践
    阿里云试用一个月:https://help.aliyun.com/search/?k=elastic&scene=all&page=1官网试用十五天:https://www.elastic.co/cn/cloud/cloud-trial-overviewElasticsearch中文文档:https://www.elastic.co/guide/cn/elasticsearch/guide/current/_document_oriented.html控制台......
  • 太强了!分布式Elasticsearch集群数据迁移企业案例
    太强了!分布式Elasticsearch集群数据迁移企业案例原创 林致远 Linux运维之旅 2024-04-0408:31 广东 1人听过Linux运维之旅专注分享运维实用技术,内容不限于Linux系统运维、自动化工具、监控工具、日志采集、容器技术、测试工具、python、GO等技术分享20篇原......
  • ElasticSearch 实战:ElasticSearch索引操作
    Elasticsearch实战:Elasticsearch索引操作在使用Elasticsearch进行数据管理时,索引操作是核心的一部分。本篇将详细介绍如何进行索引的创建、查看、更新(包括映射修改)、关闭与开启、删除等操作,以及如何进行索引模板设置以简化索引管理。**1.创建索引创建索引可以通过发......
  • Elasticsearch与Clickhouse的对比分析
    ClickHouse和Elasticsearch是两种不同的数据存储和分析工具,各自在不同的用例和场景下发挥着作用。数据类型:ClickHouse:主要用于结构化数据,特别擅长处理大规模的数据仓库和分析场景,支持SQL查询。Elasticsearch:适用于非结构化或半结构化数据,特别擅长全文搜索和日志分析,支......
  • java 企业工程管理系统软件源码+Spring Cloud + Spring Boot +二次开发+ 可定制化
    工程项目管理软件是现代项目管理中不可或缺的工具,它能够帮助项目团队更高效地组织和协调工作。本文将介绍一款功能强大的工程项目管理软件,该软件采用先进的Vue、Uniapp、Layui等技术框架,涵盖了项目策划决策、规划设计、施工建设到竣工交付、总结评估、运维运营等全过程。通过该......
  • WPF开发分页控件:实现可定制化分页功能及实现原理解析
    概要本文将详细介绍如何使用WPF(WindowsPresentationFoundation)开发一个分页控件,并深入解析其实现原理。我们将通过使用XAML和C#代码相结合的方式构建分页控件,并确保它具有高度的可定制性,以便在不同的应用场景中满足各种需求。一.简介分页控件是在许多应用程序中常见......