Elasticsearch 创建自定义分析器(4)

一.自定义分析器

  当内置分析器不能满足时,可以创建一个自定义分析器,自定义分析器(analyzer)由:

      1)0或多个 charactcr filter 字符过滤器

      2)  1个 tokenizer 分词器,将文本切分为分词

         3)0或多个 token filter 令牌过滤器,是属于分词后再过滤

  自定义配置参数如下

type分析器类型,接收内置分析器类型,可以使用custom(代表自定义分析器)或者省略此参数
tokenizer内置或自定义分词器 (必填)
char_filter内置或自定义字符过滤器(character filters)  可选数组
filter内置或自定义令牌过滤器(token filter)可选数组
position_increment_gap间隙值,跨值访问,一般用于match_phrase短语查询检索数据,默认值100

  示例1:自定义一个分析器

    1)char_filter字符过滤器:使用html_strip去除html标签

    2)  tokenizer分词器:使用standard标准分词器

    3)filter令牌过滤器: 使用 lowercase转小写,使用asciifolding转为ascii


    定义分析器结构如下:

PUT my-index-000001
{"settings": {"analysis": {"analyzer": {"my_custom_analyzer": {  #自定义一个分析器"type": "custom", "tokenizer": "standard",  #使用标准分析词"char_filter": [     #使用char_filter字符过滤器"html_strip"],"filter": [        #使用filter过滤器"lowercase","asciifolding"]}}}}
}

    使用自定义分析器分词

POST my-index-000001/_analyze
{"analyzer": "my_custom_analyzer","text": "Is this <b>déjà vu</b>?"
}

    查看分词结果: [ is,this,deja,vu]

  示例2:自定义一个复杂分析器,它结合了以下内容:

    1)char_filter字符过滤器:自定义Mapping Character Filter映射:

      :)   符号映射为  _happy_ 

      :(   符号映射为  _sad_ 

    2) tokenizer分词器:自定义Pattern 模式分词器

    3) filter令牌过滤器:  lowercase转小写,自定义过滤停用词

    定义分析器结构:

PUT my-index-000001
{"settings": {"analysis": {"analyzer": {"my_custom_analyzer": {   #自定义一个分析器"char_filter": ["emoticons"           #自定义自符过滤器],"tokenizer": "punctuation",     #自定义一个分词器"filter": ["lowercase","english_stop"]}},"tokenizer": {          "punctuation": {           #模式分词器的配置"type": "pattern","pattern": "[ .,!?]"     #以里面符号来分词}},"char_filter": {         #字符过滤器的配置映射"emoticons": { "type": "mapping","mappings": [":) => _happy_",":( => _sad_"]}},"filter": {           #令牌过滤器的配置,过滤停用词"english_stop": {  "type": "stop","stopwords": "_english_"}}}}
}

    使用自定义的分析器分词

POST my-index-000001/_analyze
{"analyzer": "my_custom_analyzer","text": "I'm a :) person, and you?"
}

    查看分词结果:[ i'm, _happy_, person,you]

参考官方资料:Create a custom analyzer

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/107.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

对一个全局变量进行多线程并发 -- 或者 ++ 操作是否是安全的??是否是原子的??

1.结论&#xff1a; 不是安全的&#xff0c;不是原子的 2.原因&#xff1a; 2.1 不是原子性的原因&#xff1a; 一个线程将一个全局变量--&#xff08;减减&#xff09;时候&#xff0c;需要以下几个步骤 第一步&#xff1a;将全局变量读到cpu的寄存器中&#xff0c; 第二步…

3D目标检测实用技巧(三)- 生成虚拟点

一、引言 本次参考的是VirConv生成虚拟点的方法&#xff1a; VirConv/tools/PENet at master hailanyi/VirConv GitHubVirtual Sparse Convolution for Multimodal 3D Object Detection - VirConv/tools/PENet at master hailanyi/VirConvhttps://github.com/hailanyi/Vir…

腾讯文档推出智能白板创新品类,自研开物引擎支持全端应用

4月18日&#xff0c;“腾讯文档&#xff0c;打开想象”2024产品发布会在线上举办。腾讯社交协作产品部总经理、腾讯文档负责人鄢贤卿在会上&#xff0c;正式发布智能白板创新品类、双核编辑“开物引擎”、云加端解决方案等产品矩阵。他表示&#xff0c;在自研文档品类和自研双核…

ctfshow web入门 SQl注入web171--web179

从这里开始SQl建议大家去看这篇文章学习一下先 MySQl web171 法一联合查询 题目 $sql "select username,password from user where username !flag and id ".$_GET[id]." limit 1;";爆数据库名 -1 union select 1,database(),3 -- 爆表名 -1 union s…

数据结构 - 栈

概述 计算机科学中,stack是一种线性的数据结构,只能在其一段添加和移除数据. 习惯来说,这一端称之为栈顶,另一端不能操作数据的称之为栈底,就如同生活中的一摞书 先提供一个接口: public interface Stack <E>{/*** 向栈顶压入元素* param value -- 待压入值* returns…

✌粤嵌—2024/4/18—旋转链表✌

代码实现&#xff1a; 方法一&#xff1a;在原链表中找到旋转之后的首尾&#xff0c;改变指向 /*** Definition for singly-linked list.* struct ListNode {* int val;* struct ListNode *next;* };*/ struct ListNode* rotateRight(struct ListNode *head, int k) {i…

线程安全问题的原因和解决方案

目录 原因分析 解决线程安全问题——加锁 synchroized&#xff08;&#xff09; 死锁 死锁的四个必要条件 线程安全是指多个线程同时访问共享资源时&#xff0c;不会产生不正确的结果。线程安全问题的主要原因是多个线程对共享数据进行读写操作时的并发性。这可能导致竞态…

GDB调试基础

一.调试环境 一般的GDB调试为本机环境下调试&#xff0c;如在一台Centos6的服务器上编写demo&#xff0c;那么gdb调试时只需要运行gdb工具并指定待调试文件即可开始调试&#xff1b; 如: [xxxcentos6]$ gdb a.out //…… This GDB was configured as "x86_64-redhat-l…

制作直通网线和交叉网线

制作直通网线和交叉网线 1. 网络直通线2. 网络交叉线References 双绞线的连接方法有两种&#xff1a;直通连接和交叉连接 。 直通连接是将双绞线的两端分别都依次按白橙、橙、白绿、蓝、白蓝、绿、白棕、棕色的顺序 (国际 EIA/TIA 568B 标准) 压入 RJ45 水晶头内。这种方法制作…

壁纸、软件、电子书、音乐资源、数据库资源,囤一囤

资源网站我真的有很多&#xff01;&#xff01;下面这十几个都是壁纸资源、软件资源、电子书资源、音乐资源、数据库资源等等&#xff0c;感兴趣的囤一囤&#xff01; 一、壁纸资源 1、PEXELS 网址&#xff1a; https://www.pexels.com/zh-cn/ 一个专门分享无版权图片的网站…

Windows突然蓝屏解决办法

Windows突然蓝屏&#xff0c;然后重复开机没有用&#xff0c;但是能进入bios系统&#xff0c;证明内存和磁盘没事&#xff0c;用大白菜制作了PE系统盘制作过程&#xff08;之前一直都是用官方镜像制作&#xff0c;但是发现用大白菜制作可以对系统之前的磁盘里面重要的信息拷贝到…

Python 日期格式化,等日期相关操作

输入日期格式字符串 获取时间戳 构造时间&#xff0c;时间加减等 import time import datetimedef format_time() -> None:""" 日期格式化"""inputStr1: str input("输入一个时间格式的字符串")timeArray time.strptime(inputSt…

Python用于比较数据结构并生成差异报告的工具库之data-diff使用详解

概要 Python的data-diff库是一个用于比较数据结构并生成差异报告的工具。它可以处理各种数据类型,如字典、列表、集合等,使得开发者能够快速识别数据之间的差异。 安装 通过pip可以轻松安装data-diff: pip install data-diff特性 支持多种数据类型:能够比较字典、列表、…

tokio 学习

Rust Async 异步编程 简易教程 理解tokio核心(1): runtime Rust 中的异步编程 Rust 中的 async 和线程 OS 线程&#xff1a; 适用于少量任务&#xff0c;有内存和 CPU 开销&#xff0c;且线程生成和线程间切换非常昂贵线程池可以降低一些成本允许重用同步代码&#xff0c;…

【Python-第三方库】cv2

作用 一个开源的库平台计算机视觉库。 安装 pip install opencv_python导入 import cv2 as cv函数 cv.imread( ) 用于读取图片文件 image cv.imread(image_path)image_path&#xff1a; 图片路径。 未待完续…

新手做抖音小店,最易爆单的几大类目分享,抓紧收藏!

大家好&#xff0c;我是电商糖果 新手做抖店没有经验&#xff0c;不了解市场&#xff0c;很多人都担心类目选错了&#xff0c;很难起店。 毕竟电商行业有一句话&#xff0c;类目大于一切&#xff0c;选择大于努力。 类目没有选对&#xff0c;再折腾也没用。 糖果做抖音小店…

eclipse配置SVN和Maven插件

3、 安装SVN插件 使用如下方法安装 Help–Install New Software 注意&#xff1a;目前只能安装1.8.x这个版本的SVN&#xff0c;如果使用高版本的SVN&#xff0c;在安装SVN和maven整合插件的时候就会报错&#xff0c;这应该是插件的bug。 点击Add name: subclipse location…

五款3dmax常用插件推荐(含云渲染工具)

在三维建模和动画设计领域&#xff0c;3ds Max软件因其强大功能和灵活性而广受欢迎。为了进一步提升工作效率和创作质量&#xff0c;有许多插件可供选择。本文推荐五款常用3ds Max插件&#xff0c;帮助你更好实现复杂的模型和动效创作。 五款3dmax常用插件推荐 1、Kitchen Cab…

Linux gcc 6

本章开始学习工具 什么是工具&#xff1f; 本质也是指令 yum 命令 小火车 sudo yum install sl&#xff08;安装sl&#xff09; sudo yum install -y sl //直接yes就不提示了 yum list //将yum源上的软件都穷举出来 yum search sl //结果不友好&#xff0c;不推荐 yum lis…

活动报名 | 如何进行全增量一体的异构数据库实时同步

伴随着新技术的不断涌现&#xff0c;市场竞争也在不断开辟新的角斗场——新的业务需求&#xff0c;新的应用设想都在这里迸发。 面对如此日新月异的竞争环境&#xff0c;企业的当务之急&#xff0c;是为新应用扎根准备好随时可取、准确一致的高质量数据土壤。在这样的背景下&a…