seo索引分为正向索引 第1篇
新增文档的DSL语法如下:
查看文档语法:
GET /索引库名/_doc/文档id
删除索引库的语法:
DELETE/索引库名/_doc/文档id
方式一
:全量修改,会删除旧文档,添加新文档
方式二
:增量修改,修改指定字段值
ES官方提供了各种不同语言的客户端,用来操作ES。 这些客户端的本质就是组装DSL语句,通过http请求发送给ES。 官方文档地址:
1.本地数据库中的表信息,字段名:
2.再elasticsearch做mapping
映射:
3.初始化JavaRestClient
4.为了单元测试方便,我们创建一个测试类HotelIndexTest,然后将初始化的代码编写在@BeforeEach方法中:
根据id查询到的文档数据是json,需要反序列化为java对象:
修改文档数据有两种方式: 方式一:全量
更新。
再次写入id一样的文档,就会删除旧文档,添加新文档
方式二︰局部
更新。
只更新部分字段,我们演示方式二
需求:批量查询酒店数据,然后批量导入索引库中思路: 1.利用mybatis-plus查询酒店数据 2.将查询到的酒店数据( Hotel)转换为文档类型数据(HotelDoc) 3.利用JavaRestClient中的Bulk批处理,实现批量新增文档,示例代码如下
seo索引分为正向索引 第2篇
elasticsearch
是一款非常强大的开源搜索引擎,可以帮助我们从海量数据中快速找到需要的内容。 elasticsearch
结合kibana
、Logstash
、Beats
,也就是elastic
tack
(ELK)。 被广泛应用在日志数据分析、实时监控等领域。
elasticsearch
是elastic stack
的核心,负责存储、搜索、分析数据。
是一个Java语言的搜索引擎类库,是Apache
公司的顶级项目,由DougCutting于1999年研发。 官网地址:
Lucene的优势:
Lucene的缺点:
2004年Shay Banon基于Lucene开发了Compass 2010年Shay Banon重写了Compass,取名为Elasticsearch。 官网地址:
相比与lucene
,elasticsearch
具备下列优势:
elasticsearch采用倒排索引:
基于文档id创建索引
。 查询词条时必须先找到文档,而后判断是否包含词条
正向索引是一种数据结构,用于加快信息检索的速度。正向索引将文档中的每个关键词与其所在的文档位置进行关联。当需要搜索特定的关键词时,正向索引可以快速确定包含该关键词的文档位置,从而加速搜索过程。正向索引常用于搜索引擎和文本检索系统中。
对文档内容分词,对词条创建索引,并记录词条所在文档的信息。 查询时先根据词条查询到文档id
,而后获取到文档
倒排索引(Inverted Index)是一种常用的数据结构,用于加快信息检索的速度。与正向索引不同,倒排索引将关键词与包含该关键词的文档进行关联。倒排索引记录了每个关键词在哪些文档中出现,并提供了快速查找特定关键词所在文档的能力。
举个例子,假设我们有一篇文章包含了以下句子:
倒排索引将会记录以下信息:
当我们需要搜索包含特定关键词的文档时,倒排索引可以快速定位到相关文档,从而提高搜索效率。 倒排索引广泛应用于搜索引擎、数据库和文本检索系统
等领域。
elasticsearch是面向文档存储的,可以是数据库中的一条商品数据,一个订单信息。 文档数据会被序列化为json
格式后存储在elasticsearch
中。
Mysql
:擅长事务类型操作,可以确保数据的安全和一致性 Elasticsearch
:擅长海量数据的搜索、分析、计算
部署单点es: 1.创建网络: 因为我们还需要部署kibana容器,因此需要让es和kibana容器互联。这里先创建一个网络:
2.拉取镜像或者加载已有镜像
使用docker pull
和docker load
命令
3.运行docker命令,部署单点es:
kibana
可以给我们提供一个elasticsearch的可视化界面
,便于我们学习。
1.运行docker命令,部署kibana:
es在创建倒排索引时需要对文档分词;在搜索时,需要对用户输入内容分词。但默认的分词规则对中文处理并不友好
。
官方网站:
IK分词器包含两种模式:
ik_smart
:最少切分
ik_max_word
:最细切分
要拓展ik分词器的词库
或者禁用某些敏感词条
,只需要修改一个ik分词器目录中的config目录中的文件:
seo索引分为正向索引 第3篇
mapping是对索引库中文档的约束,常见的mapping属性包括:
① type
:字段数据类型,常见的简单类型有: 字符串
: text (可分词的文本)、keyword(精确值,例如:品牌、国家、ip地址) 数值
:long、integer、short、byte、double、float 布尔
: boolean 日期
: date 对象
: object
②index
:是否创建索引,默认为true ③analyzer
:使用哪种分词器 ④properties
:该字段的子字段
ES中通过Restful
请求操作索引库、文档。请求内容用DSL语句来表示。 创建索引库和mapping的DSL
语法如下:
1.查看索引库语法:
2.删除索引库的语法:
3.索引库和mapping一旦创建无法修改,但是可以添加新的字段,语法如下: