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.mfbz.cn/a/554997.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

IDEA中SVN 的使用

文章目录 前言一、svn安装二、IDEA集成SVN总结 前言 svn可以老牌的代码仓库了 说实话svn还是和git无法相比的,毕竟git有本地仓库的概念,可以很好的处理冲突,然而svn是没有本地仓库的概念的,所以只能拉取别人的代码,然后处理冲突后,才能提交代码; 由于最近的工作换成了用svn仓…

找不到api-ms-win-crt-runtime-l1-1-0.dll文件5种解决方法

在日常使用计算机的过程中&#xff0c;我们时常会遭遇各类意想不到的问题&#xff0c;其中之一就是“api-ms-win-crt-runtime-l1-1-0.dll丢失”。这个错误通常发生在Windows操作系统中&#xff0c;它表示一个动态链接库文件丢失或损坏。这个问题可能会导致某些应用程序无法正常…

LLamaSharp加载llama.cpp转化好的模型

新建.net8控制台项目 安装依赖包 LLamaSharp和LLamaSharp.Backend.Cpu 准备好转化好的模型 没有的话参考这篇文章https://blog.csdn.net/qq_36437991/article/details/137248622 编写代码 using LLama; using LLama.Common; using LLama.Native;namespace llamasharpstu…

【Java开发指南 | 第十三篇】Java条件语句

读者可订阅专栏&#xff1a;Java开发指南 |【CSDN秋说】 文章目录 if 语句if...else 语句if...else if...else 语句嵌套的 if…else 语句switch 语句 Java 中的条件语句用于根据条件来执行不同的代码块。条件语句允许程序根据表达式的结果选择性地执行代码。 条件语句分为if 语…

中拔出溜的公司如何实施DEVOPS

虽然推进起来很艰难&#xff0c;但在这类公司也并非一无是处&#xff1a;只要让各方尤其是领导曾看到了成效&#xff0c;大范围铺开很容易&#xff0c;你也非常容易因此变得出众。 0. 标题 1. 中拔出溜公司的特点2. 循序渐进2.1 从研发团队开始2.2 先CI&#xff08;持续集成&am…

vim使用指南:指令、配置、插件、异常

文章目录 vi / vim命令模式插入模式光标定位复制粘贴删除撤销替换删除查找 底行模式保存退出行号查找多开其他 视图模式注释 异常vim配置vim插件 vi / vim vim的本质是一个编辑器&#xff0c;是一种多模式的编辑器&#xff0c;只能进行读写操作&#xff0c;不能进行编译编辑器…

前端JS必用工具【js-tool-big-box】,时间日期转换学习一

这一小节&#xff0c;我们学习一下 js-tool-big-box 这个npm 前端工具库&#xff0c;关于时间日期格式转换的一部分&#xff0c;后续还会有。 目录 1 安装 2 项目中引入 3 工具使用 3.1 年月日时分秒的单独处理 3.2 以上方法中第一个参数 3.3 日期时间的转换 3.4 更个…

Ollama、FastGPT大模型RAG知识库结合使用案例

参考: https://ollama.com/download/linux https://doc.fastai.site/docs/intro/ https://blog.csdn.net/m0_71142057/article/details/136738997 https://doc.fastgpt.run/docs/development/custom-models/m3e/ https://concise-eater-d47.notion.site/Ollama-Fastgpt-b170…

编程入门(四)【计算机网络基础(由一根网线连接两个电脑开始)】

读者大大们好呀&#xff01;&#xff01;!☀️☀️☀️ &#x1f525; 欢迎来到我的博客 &#x1f440;期待大大的关注哦❗️❗️❗️ &#x1f680;欢迎收看我的主页文章➡️寻至善的主页 文章目录 前言两个电脑如何互连呢&#xff1f;集线器、交换机与路由器总结 前言 当你有…

基于SpringBoot的“外卖点餐系统”的设计与实现(源码+数据库+文档+PPT)

基于SpringBoot的“外卖点餐系统”的设计与实现&#xff08;源码数据库文档PPT) 开发语言&#xff1a;Java 数据库&#xff1a;MySQL 技术&#xff1a;SpringBoot 工具&#xff1a;IDEA/Ecilpse、Navicat、Maven 系统展示 系统功能图 用户功能界面 订单管理界面 配送单管…

Java 笔记 01:Java 概述,MarkDown 常用语法整理

一、前言 记录时间 [2024-04-18] 昨天整理完 Docker 基础后略微思索了一下&#xff0c;还是决定把 Java 捡起来&#xff0c;系统地学习一遍&#xff0c;参考的学习课程是狂神说 Java 零基础&#xff0c;真诚感激此系列视频对笔者的帮助。 零基础可以学 Java 吗&#xff1f;只要…

【创建型模式】建造者模式

一、建造者模式概述 建造者模式定义&#xff1a;将一个复杂对象的构建与它的表示分离&#xff0c;使得同样的构建过程可以创建不同得表示。(对象创建型模式)。 建造者模式分析&#xff1a; 1.将客户端与包含多个部件得复杂对象得创建过程分离&#xff0c;客户端无需知道复杂对象…

vue快速入门(二十九)echarts在vue中的使用

注释很详细&#xff0c;直接上代码 上一篇 新增内容 echarts.js的下载途径echarts的饼图示范 echarts.js&#xff0c;点击跳转&#xff0c;右键另存即可 源码 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8" /><m…

BEV| lift-splat-shoot 运行配置

Lift, splat, shoot: Encoding images from arbitrary camera rigs by implicitly unprojecting to 3d

6.C++:继承

一、继承 //1.类中的保护和私有在当前类中没有差别&#xff1b; //2.在继承后的子类中有差别&#xff0c;private在子类中不可见&#xff0c;所以用protected&#xff1b; class person { public:void print(){cout << "name:" << _name << endl;c…

《乱弹篇(29)崇州寻兰》

几天前天气骤然暴热&#xff0c;致使本老龄笔者血氧饱和度急剧下降至89&#xff0c;心率加速高达110至120&#xff0c;晚上盖床夏被也觉浑身燥热&#xff0c;很不舒服&#xff0c;彻夜难眠&#xff0c;便有一种“快走了”的不祥预感袭上心头。其实&#xff0c;我真的祈盼能心肌…

计算机视觉——基于OpenCV和Python进行模板匹配

模板匹配&#xff1f; 模板匹配是它允许在一幅较大的图像中寻找是否存在一个较小的、预定义的模板图像。这项技术的应用非常广泛&#xff0c;包括但不限于图像识别、目标跟踪和场景理解等。 目标和原理 模板匹配的主要目标是在一幅大图像中定位一个或多个与模板图像相匹配的…

隧道中心线提取

作者&#xff1a;迅卓科技 简介&#xff1a;本人从事过多项点云项目&#xff0c;并且负责的项目均已得到好评&#xff01; 公众号&#xff1a;迅卓科技&#xff0c;一个可以让您可以学习点云的好地方 重点&#xff1a;每个模块都有参数如何调试的讲解&#xff0c;即调试某个参数…

HackMyVM-BaseME

目录 信息收集 arp nmap WEB web信息收集 gobuster hydra 目录检索 ssh 提权 get user sudo base64提权 get root 信息收集 arp ┌─[rootparrot]─[~/HackMyVM] └──╼ #arp-scan -l Interface: enp0s3, type: EN10MB, MAC: 08:00:27:16:3d:f8, IPv4: 192.168…

​波士顿动力发布全新人形机器人:Atlas

4月16日&#xff0c;波士顿动力&#xff08;Boston Dynamics&#xff09;发布了《再见&#xff0c;液压Atlas》视频&#xff0c;正式宣告其研发的液压驱动双足人形机器人Atlas退役。 在视频的结尾&#xff0c;Atlas深深鞠躬&#xff0c;之后还有一句话“直到我们再次相遇&…
最新文章