es7.x Es常用核心知识快捷版1(分词和text和keyword)

news2024/10/6 12:35:58

一 分词

1.1 分词

1.1.1 查看分词

standard标准分析器是将每个字都分出来;

ik_max_word是最细粒度的分词,将所有可能的词都分出来;

ik_smart 是最粗粒度的分词

ik_smart

优点:特征是粗略快速的将文字进行分词,占用空间小,查询速度快

缺点:分词的颗粒度大,可能跳过一些重要分词,导致查询结果不全面,查全率低

ik_max_word

优点:特征是详细的文字片段进行分词,查询时查全率高,不容易遗漏数据

缺点:因为分词太过详细,导致有一些无用分词,占用空间较大,查询速度慢standard是ES默认的分词器,"analyzer": "standard"是可以省略的

1.1.2 几种分词比较

1.使用 ik_max_word 分词

###  请求

GET    http://localhost:9200/_analyze

{

  "text":"中华人民共和国人民大会堂",

  "analyzer":"ik_max_word"

}

响应结果:

{

    "tokens": [

        {

            "token""中华人民共和国",

            "start_offset"0,

            "end_offset"7,

            "type""CN_WORD",

            "position"0

        },

        {

            "token""中华人民",

            "start_offset"0,

            "end_offset"4,

            "type""CN_WORD",

            "position"1

        },

        {

            "token""中华",

            "start_offset"0,

            "end_offset"2,

            "type""CN_WORD",

            "position"2

        },

        {

            "token""华人",

            "start_offset"1,

            "end_offset"3,

            "type""CN_WORD",

            "position"3

        },

        {

            "token""人民共和国",

            "start_offset"2,

            "end_offset"7,

            "type""CN_WORD",

            "position"4

        },

        {

            "token""人民",

            "start_offset"2,

            "end_offset"4,

            "type""CN_WORD",

            "position"5

        },

        {

            "token""共和国",

            "start_offset"4,

            "end_offset"7,

            "type""CN_WORD",

            "position"6

        },

        {

            "token""共和",

            "start_offset"4,

            "end_offset"6,

            "type""CN_WORD",

            "position"7

        },

        {

            "token""国人",

            "start_offset"6,

            "end_offset"8,

            "type""CN_WORD",

            "position"8

        },

        {

            "token""人民大会堂",

            "start_offset"7,

            "end_offset"12,

            "type""CN_WORD",

            "position"9

        },

        {

            "token""人民大会",

            "start_offset"7,

            "end_offset"11,

            "type""CN_WORD",

            "position"10

        },

        {

            "token""人民",

            "start_offset"7,

            "end_offset"9,

            "type""CN_WORD",

            "position"11

        },

        {

            "token""大会堂",

            "start_offset"9,

            "end_offset"12,

            "type""CN_WORD",

            "position"12

        },

        {

            "token""大会",

            "start_offset"9,

            "end_offset"11,

            "type""CN_WORD",

            "position"13

        },

        {

            "token""会堂",

            "start_offset"10,

            "end_offset"12,

            "type""CN_WORD",

            "position"14

        }

    ]

}

2.使用standard分词器

###  请求

GET    http://localhost:9200/_analyze

{

  "text":"中华人民共和国人民大会堂",

  "analyzer":"standard"

}

响应结果:

{

    "tokens": [

        {

            "token""中",

            "start_offset"0,

            "end_offset"1,

            "type""<IDEOGRAPHIC>",

            "position"0

        },

        {

            "token""华",

            "start_offset"1,

            "end_offset"2,

            "type""<IDEOGRAPHIC>",

            "position"1

        },

        {

            "token""人",

            "start_offset"2,

            "end_offset"3,

            "type""<IDEOGRAPHIC>",

            "position"2

        },

        {

            "token""民",

            "start_offset"3,

            "end_offset"4,

            "type""<IDEOGRAPHIC>",

            "position"3

        },

        {

            "token""共",

            "start_offset"4,

            "end_offset"5,

            "type""<IDEOGRAPHIC>",

            "position"4

        },

        {

            "token""和",

            "start_offset"5,

            "end_offset"6,

            "type""<IDEOGRAPHIC>",

            "position"5

        },

        {

            "token""国",

            "start_offset"6,

            "end_offset"7,

            "type""<IDEOGRAPHIC>",

            "position"6

        },

        {

            "token""人",

            "start_offset"7,

            "end_offset"8,

            "type""<IDEOGRAPHIC>",

            "position"7

        },

        {

            "token""民",

            "start_offset"8,

            "end_offset"9,

            "type""<IDEOGRAPHIC>",

            "position"8

        },

        {

            "token""大",

            "start_offset"9,

            "end_offset"10,

            "type""<IDEOGRAPHIC>",

            "position"9

        },

        {

            "token""会",

            "start_offset"10,

            "end_offset"11,

            "type""<IDEOGRAPHIC>",

            "position"10

        },

        {

            "token""堂",

            "start_offset"11,

            "end_offset"12,

            "type""<IDEOGRAPHIC>",

            "position"11

        }

    ]

}

3.使用 ik_smart分词

###  请求

GET    http://localhost:9200/_analyze

{

  "text":"中华人民共和国人民大会堂",

  "analyzer":"ik_smart"

}

响应结果:

{

    "tokens": [

        {

            "token""中华人民共和国",

            "start_offset"0,

            "end_offset"7,

            "type""CN_WORD",

            "position"0

        },

        {

            "token""人民大会堂",

            "start_offset"7,

            "end_offset"12,

            "type""CN_WORD",

            "position"1

        }

    ]

}

https://www.jianshu.com/p/e8e6874799f6

https://www.bilibili.com/read/cv17912145/

1.1.3 入库和查询指定分词器

1.创建或者更新文档时,会对文档进行分词,可以指定分词

创建index mapping时指定search_analyzer

 不指定分词时,会使用默认的standard

明确字段是否需要分词,不需要分词的字段将type设置为keyword,可以节省空间和提高写性能。

2.搜索:查询时,对查询语句分词

查询时通过analyzer指定分词器

es的分词器analyzer_51CTO博客_es分词器

1.2 text与keyword类型

1.2.1 两种类型说明

ES5.0及以后的版本取消了string类型,将原先的string类型拆分为text和keyword两种类型。

1.如果字段是text类型,存入的数据会先进行分词,然后将分完词的词组存入索引,但是text类型的数据不能用来过滤、排序和聚合等操作

2.keyword则不会进行分词,直接存储。常常被用来过滤、排序和聚合

3.es自动生成的该字段的mapping是text + keyword(es版本7.9.0)。

1.2.2 字段同时具有keyword和text属性

当直接保存一个字符串字段时,es自动生成的该字段的mapping是text + keyword(es版本7.9.0)。

{

    "city_info": {

        "mappings": {

            "properties": {

                "address": {

                    "type""text",

                    "fields": {

                        "keyword": {

                            "type""keyword",

                            "ignore_above"256

                        }

                    }

                },

                "cityName": {

                    "type""text",

                    "fields": {

                        "keyword": {

                            "type""keyword",

                            "ignore_above"256

                        }

                    }

                }

            }

        }

    }

}

1.创建索引

 2.直接添加文档

 3.查看mapping

 1.2.3 给text类型添加keyword属性

 如果在创建index的时候给某个字段指定了类型text,但是之后又想给它追加上keyword方便以后按完整字符串搜索。可以通过PUT命令实现。

例子如下: 

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

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

相关文章

程序员,你被打标签了没?

点击文末“阅读原文”即可参与节目互动 剪辑、音频 / 朱峰 运营 / SandLiu 卷圈 监制 / 姝琦 封面 / 姝琦midjourney 产品统筹 / bobo 赚钱多、回家少、死的早&#xff0c;似乎成了现在对程序员的刻板印象。 本期节目&#xff0c;我们将跳出传统的科技讨论圈&#xff0c…

这个 选择排序详解过程 我能吹一辈子!!!

文章目录 选择排序概念选择排序算法思路选择排序代码实现选择排序优化 选择排序概念 选择排序&#xff1a;即每次选择第一个数为最小或者最大与之后的元素进行比较&#xff0c;循环都能找到一个最大或者最小放到序列的两端。 选择排序算法思路 选择排序是一种简单直观的排序…

chatgpt赋能python:Python操作表格的全面指南

Python操作表格的全面指南 表格是一种非常实用的数据展示方式&#xff0c;程序员在处理数据以及展示数据时也经常使用表格。Python提供了多个强大的库操作表格&#xff0c;本文将为你介绍一些常见的Python操作表格的方式——包括读取、写入、处理和操作。 读取表格 Python提…

文献阅读-A Survey on Transfer Learning 和 A Survey on Deep Transfer Learning

论文&#xff1a; A Survey on Transfer Learning 期刊会议&#xff1a;IEEE TRANSACTIONS ON KNOWLEDGE AND DATA ENGINEERING 时间&#xff1a;2010 级别&#xff1a;CCF A 论文&#xff1a; A Survey on Deep Transfer Learning 期刊会议&#xff1a;International Confere…

LRU 该用什么数据结构

LRU&#xff08;最近最少使用&#xff09;&#xff0c;是一种缓存置换算法。缓存是用来存储常用的数据&#xff0c;加速常用数据访问的数据结构。有软件实现&#xff0c;比如数据库的缓存&#xff1b;也有硬件实现&#xff0c;比如我们上一讲学的 TLB。缓存设计中有一个重要的环…

chatgpt赋能Python-python_怎么赋值

介绍 Python是一种高级编程语言&#xff0c;它的强大之处在于它的简洁性和易读性。由于其简单易学&#xff0c;灵活性和可移植性&#xff0c;Python在Web开发、自动化测试和数据分析等领域得到了广泛的应用。在Python中&#xff0c;赋值是一项基本的操作&#xff0c;这篇文章将…

【第八期】Apache DolphinScheduler 每周 FAQ 集锦

点击蓝字 关注我们 摘要 为了让 Apache DolphinScheduler 的广大用户和爱好者对于此项目的疑问得到及时快速的解答&#xff0c;社区特发起此次【每周 FAQ】栏目&#xff0c;希望可以解决大家的实际问题。 关于本栏目的要点&#xff1a; 本栏目每周将通过腾讯文档&#xff08;每…

初识Monorepo

引言 在如今快节奏的前端开发中&#xff0c;管理多个项目和组件的复杂性成为了开发团队的挑战&#xff0c;Monorepo&#xff08;单一代码仓库&#xff09;作为一种新兴的解决方案&#xff0c;正在成为开发团队的新宠。 Monorepo简介 是什么 Monorepo 是一种软件开发的策略模式…

21 VueComponent 事件的处理

前言 这是最近的碰到的那个 和响应式相关的问题 特定的操作之后响应式对象不“响应“了 引起的一系列的文章 主要记录的是 vue 的相关实现机制 呵呵 理解本文需要 vue 的使用基础, js 的使用基础 测试用例 测试用例如下, 一个简单的 按钮事件的触发 问题的调试 调用…

理解 Linux 文件权限

章节目录&#xff1a; 一、Linux 的安全性1.1 /etc/passwd 文件1.2 /etc/shadow 文件1.3 添加新用户1.4 删除用户1.5 修改用户 二、使用 Linux 组2.1 /etc/group 文件2.2 创建新组2.3 修改组 三、理解文件权限3.1 使用文件权限符号3.2 默认文件权限 四、更改安全设置4.1 修改权…

chatgpt赋能python:Python如何捕捉窗口?——一位有10年Python编程经验的工程师谈Windows操作系统编程

Python 如何捕捉窗口&#xff1f;——一位有10年Python编程经验的工程师谈Windows操作系统编程 自从计算机出现以来&#xff0c;人们就开始与操作系统打交道。而对于Windows系统而言&#xff0c;捕捉窗口通常需要在应用程序级别完成。但是&#xff0c;使用Python与Windows编程…

新手须知的pr入门知识,小红书媒介话术分享

我们都知道&#xff0c;这是一个内容为王的时代。在众多的平台上&#xff0c;都存着无数优秀的内容产出者&#xff0c;也就是达人。今天对新手须知的pr入门知识&#xff0c;小红书媒介话术分享。 一、什么是pr PR即Public Relations的简称&#xff0c;翻译过来就是公关的意思 。…

惠普HP4294A(110M) 安捷伦agilent 4294a精密阻抗分析仪

HP/Agilent 4294A 精密阻抗分析仪是一种集成解决方案&#xff0c;可对元件和电路进行有效的阻抗测量和分析。HP/Agilent 4294A 覆盖更宽的测试频率范围&#xff08;40 Hz 至 110 MHz&#xff09;&#xff0c;基本阻抗精度为 /-0.08%。出色的高 Q/低 D 精度可实现低损耗组件的分…

恭喜,拿到华为OD offer了,并分享刷题经验

目录 一、先介绍一下华为OD是个什么鬼&#xff1f;1、华为OD背景2、华为OD现状3、华为OD趋势4、华为OD介绍&#xff08;1&#xff09;人力外包&#xff08;2&#xff09;员工关系&#xff08;3&#xff09;工作关系&#xff08;4&#xff09;薪酬福利&#xff08;5&#xff09;…

Window MinGW 编译 OpenCV 人快疯了看这里!

目录 一、使用官方编译好的 二、使用MinGW编译器自行进行编译 三、编译好的OpenCV库 OpenCV3.4.5 OpenCV 4.5.4 一、使用官方编译好的 【Qt】opencv源码&官方编译好的opencv在windows下使用的区别_外来务工人员徐某的博客-CSDN博客 官方替我们编译好了&#xff0c;可以直…

一篇文章带你了解Netty

Netty 传统的IO模型的web容器&#xff0c;比如老版本的Tomcat&#xff0c;为了增加系统的吞吐量&#xff0c;需要不断增加系统核心线程数量&#xff0c;或者通过水平扩展服务器数量&#xff0c;来增加系统处理请求的能力。有了NIO之后&#xff0c;一个线程即可处理多个连接事件…

DNSPod十问崔久强:证书有效期缩短,CA机构要凉透?

本期嘉宾 崔久强 上海CA中心总经理 崔久强&#xff0c;上海市数字证书认证中心有限公司总经理、上海市静安区政协委员、第一届上海市智慧城市建设领军先锋、一带一路信息产业发展联盟数字签名专委会主任委员、中国电子认证产业联盟专委会委员、中国密码学会电子认证专委会理事…

【P35】JMeter 包含控制器(Include Controller)

文章目录 一、包含控制器&#xff08;Include Controller&#xff09;参数说明二、准备工作三、测试计划设计3.1、保存测试片段3.2、使用测试片段 一、包含控制器&#xff08;Include Controller&#xff09;参数说明 可以将测试计划的某一部分提取为公用逻辑&#xff0c;这样…

Goby 漏洞更新 |中保無限Modem Configuration Interface 默认口令漏洞

漏洞名称&#xff1a;中保無限Modem Configuration Interface 默认口令漏洞 English Name&#xff1a;Gemtek Modem Configuration Interface Default password vulnerability CVSS core: 5.0 影响资产数&#xff1a;4521 漏洞描述&#xff1a; Modem Configuration Inter…

chatgpt赋能python:Python操作网页的SEO

Python操作网页的SEO 在当今的数字时代&#xff0c;许多企业专注于提高其网站的排名。在这种竞争激烈的环境中&#xff0c;搜索引擎优化&#xff08;SEO&#xff09;是必不可少的。虽然有许多方法可以提高网站的排名&#xff0c;但其中一个最重要的是使用Python来操作网页。 …