没有合适的资源?快使用搜索试试~ 我知道了~
elastic search 7.6.2 查询
需积分: 0 0 下载量 4 浏览量
2023-12-21
16:12:45
上传
评论
收藏 1.1MB DOC 举报
温馨提示
试读
31页
elastic search 7.6.2 查询
资源推荐
资源详情
资源评论
ElasticSearch(7.6.2) 分布式搜索引擎
一、简介
基于 Lucene 实现的搜索服务器
是一个实时的分布式开放源代码全文本搜索和分析引擎
从 RESTful Web 服务界面访问它,并使用无模式的 JSON(JavaScript 对象表示法)文档
存储数据
1. 索引
在 Elasticsearch 中,数据存储的基本单位是索引。索引的创建是
通过定义索引的映射、写入数据和建立倒排索引来实现的。
索引的名称必须是小写的,不可重名
正向索引
正向索引是最传统的,根据 id 索引的方式。但根据词条查询时,必须先逐条获取每个文档,
然后判断文档中是否包含所需要的词条,是根据文档找词条的过程。
倒排索引
倒排索引:又叫反向索引,将文档内容中的单词作为索引,将包含该词的文档 ID 作为记录
的结构。根据词条找文档的过程。
词条(Term):对文档数据或用户搜索数据,利用某种算法分词,得到的具备含
义的词语就是词条。
2. 映射
索引的映射
映射就是对索引库中索引的字段名称及其数据类型进行定义,
� 动态映射 dynamic Mapping
文档写入 ElasticSearch 时,会根据文档字段自动识别类型,这种机
制称之为动态映射。
� 静态映射
事先定义好映射,包含文档的各个字段及其类型等,这种方式称之为
静态映射。
3. 文档(Document)
用来搜索的数据,其中的每一条数据就是一个文档。
4. 分词器
1. 分词器的作用是什么?
创建倒排索引时对文档分词
用户搜索时,对输入的内容分词
2. ES 分词器类型
Standard:ES 默认的分词器,将词汇单元转换为小写形式,并且去除停用词
(在信息检索中,为节省存储空间和提高搜索效率,在处理自然语言数据或文本之前或
之后会自动过滤掉某些字或词)、标点符号,支持中文(单字切分)。
Simple:通过非字母字符来分割文本信息,然后将词汇单元统一转换为小写形
式,会去除掉数字类型的字符。
Whitespace:仅仅是去除空格、不支持中文,对分割的词汇单元不做标准化的
处理,也不会将字符转换成小写。
language:特定语言分词器,但是不支持中文
测试语句:
GET _analyze/
{
"analyzer": "ik_smart", ----指定分词类型
"text": "他是吴承恩" ----测试语句
}
3. IK 分词器有几种模式?
ik_smart:智能切分,粗粒度
ik_max_word:最细切分,细粒度
4. IK 分词器如何拓展词条?如何停用词条?
� 利用 config 目录的 IkAnalyzer.cfg.xml 文件添加拓展词典和停用词典
� 在词典中添加拓展词条或者停用词条
二、使用
1. 常见的数据类型
常见数据类型
1. 数字类型
long integer short byte double float half_float scaled_float
unsigned_long
2. keywords
keyword:适用于索引结构化的字段,只能精确值搜索,可以用于过滤、排序、聚合
constant_keyword:始终包含相同值的关键字字段
wildcard: 可针对类似 grep 的通配符查询优化日志行等类似的关键字值
3. 时间类型 Dates :包括 date 和 date_nanos
4. alias 定义别名
5. binary 二进制
6. range 区间类型 integer_range、float_range、long_range、double_range、date_range
7. text 类型
设置 text 类型以后,字段内容会被分析,在生成倒排索引(默认)以前,字符串会被
分析器分成一个一个词项,text 类型的字段不用于排序,很少用于聚合
对象关系类型
1. object : 用于单个 JSON 对象
2. nested: 用于 JSON 对象数组
3. flattened: 允许将整个 JSON 对象索引为单个字段
结构化类型
1. geo-point:纬度/经度积分
2. geo-shape:用于多边形等复杂形状
3. point:笛卡尔坐标点
4. shape:笛卡尔任意几何图形
特殊类型(常用)
1. IP 地址:ip 用于 IPv4 和 IPv6 地址
2. completion 提供自动完成建议
数组 array
在 Elasticsearch 中,数组不需要专用的字段数据类型。默认情况下,任何字段都可以包
含零个或多个值,但是,数组中的所有值都必须具有相同的数据类型
2. 创建索引并指定 Mapping 映射(静态映射)
通过命令提前建好:
通过代码配置:
1. @Document(indexName = "demo_book", createIndex = true) 用在类上
作用:代表一个对象为一个文档
-- indexName 属性: 创建索引的名称
-- createIndex 属性: 是否创建索引(默认是 true)
--Replicas 属性:副本也就是备份,是对主分片的一个备份。
2. @Id 用在属性上 作用:将对象 id 字段与 ES 中文档的_id 对应
3. @Field(type = FieldType.Keyword) 用在属性上 作用:用来描述属性在 ES 中存储类型以及分
词情况
-- type: 用来指定字段类型
对应的 repository 文件:
Mappings 映射 GET /indexName(索引名)/_mappings:
剩余30页未读,继续阅读
资源评论
lxh2510
- 粉丝: 2
- 资源: 1
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 基于Javascript的影视动画设计源码 - cad
- 基于Java和深度学习的瓦斯浓度预测系统后端设计源码 - 瓦斯浓度预测后端
- Screenshot_20240528_103010.jpg
- 基于Python的新能源承载力计算及界面设计源码 - HAINING-DG
- 基于Java的本科探索学习项目设计源码 - 本科探索
- 基于Javascript和Python的微商城项目设计源码 - MicroMall
- 基于Java的网上订餐系统设计源码 - online ordering system
- 基于Javascript的超级美眉网络资源管理应用模块设计源码
- 基于Typescript和PHP的编程知识储备库设计源码 - study-php
- Screenshot_2024-05-28-11-40-58-177_com.tencent.mm.jpg
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功