Elasticsearch

Elasticsearch,简称es,es是一个开源的高扩展的分布式全文检索引擎

通过解压Elasticsearch压缩包,解压即安装,打开bin目录的Elasticsearch.bat文件开启服务器

注意Elasticsearch服务器中的9300是TCP通讯端口,集群间和TCP客户端都执行该端口

9200是http协议的RESTful接口

在谷歌浏览器的开发者模式中 安装ES的图形化界面插件

Elasticsearch的核心概念:

Elasticsearch是面向文档(document)的,意味着它可以存储整个对象或文档

Elasticsearch  -> Indexes(索引) -> Types(类型) -> Documents(文档) ->Fields(字段)

索引index

在Elasticsearch中存储数据的行为叫做索引(indexing),

一个索引由一个名字来标识(必须全部小写)

类型type

在一个索引中,可以定义一种或多种类型,相当于关系型数据库中的表

一个类型是你索引的一个逻辑上的分类或分区

字段Field

相当于数据表字段,对不同属性进行分类标识

映射mapping

是处理数据的方式和规则,针对于字段做的一些限制,字段的配置.

比如:某个字段的数据类型、默认值、分析器、是否被索引等等

文档document

document一个文档是一个可被索引的基础信息单元,

文档以JSON格式来表示,而JSON是一个到处存在的互联网数据交互格式

使用Postman工具进行RESTful接口访问

请求方法:            适当的HTTP方法:GET  POST  PUT  HEAD  DELETE

请求地址:://:/?

Protocol:  http或者https

Host:  Elasticsearch 集群中任意节点的主机名,或者用 localhost 代表本地机器上的节点。

Port:  运行 Elasticsearch HTTP服务的端口号,默认是 9200

Path:  Path API的终端路径 (例如 _count将返回集群中文档数量)

Query_String:  任意可选的查询字符串参数(例如 ?pretty 将格式化地输出JSON返回值)

请求体:        一个JSON格式的请求体

创建索引


成功创建以后在谷歌浏览器的 Elasticsearch  插件中查看

创建索引时配置映射

Elasticsearch_第1张图片
创建成功后在谷歌浏览器的 Elasticsearch-head  查看

创建索引后配置映射

Elasticsearch_第2张图片
路径中有带"_"的表示的是Path API

删除索引

删除对应的索引

创建文档

Elasticsearch_第3张图片
地址最后的值为索引库中文档的ID,如果不传会随机生成一个

修改文档

querystring查询 (query_string是带分词器的查询)

字符串查询时,搜索"搜索服务器"和"大器"都可以搜索到数据

Elasticsearch_第4张图片

term查询(term,关键词匹配)

词条查询,搜索"搜索"却没有搜索到数据

Elasticsearch_第5张图片

总结:   创建索引库,设置mapping,新建type,删除索引    文档 CRUD

IK分词器和Elasticsearch集成

当我们创建索引的时候,字段使用的是标准分词器

IKAnalyzer是一个开源的,基于java语言开发的轻量级的中文分词工具包

安装IK分词器:

将解压后的Elasticsearch分词器文件夹拷贝到Elasticsearch-5.6.8\plugins下,

并重命名文件夹为analysis-ik,重启Elasticsearch即可加载IK分词器

IK提供了两个分词算法 ik_smart 和 ik_max_word

ik_smart 为最少切分  ik_max_word为最细粒度划分

ik_smart 最少切分:

Elasticsearch_第6张图片

ik_max_word 最细切分:

Elasticsearch_第7张图片
Elasticsearch_第8张图片

创建索引时,使用分词器 ik_max_word

Elasticsearch_第9张图片

因为在创建索引的时候规定了分词器类型,

所以在创建文档时,会把内容根据规定的分词器进行分词,

然后再进行querystring查询,或者term查询

也是把传入的查询条件,根据规定的分词器进行分词,然后对比

集群的相关:

集群cluster: 一个集群就是由一个或多个节点组织在一起,

它们共同持有整个数据,并一起提供索引和搜索功能

一个集群由一个唯一的名字标识,这个名字默认就是“Elasticsearch”


节点node: 一个节点是集群中的一个服务,

作为集群的一部分,它存储数据,参与集群的索引和搜索功能

和集群类似,一个节点也是由一个名字来标识的

你可能感兴趣的:(Elasticsearch)