栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 前沿技术 > 大数据 > 大数据系统

elasticsearch学习与使用

elasticsearch学习与使用

Elaticsearch,简称为es, es是一个开源的高扩展的分布式全文检索引擎,它可以近乎实时的存储、检索数据;本 身扩展性很好,可以扩展到上百台服务器,处理PB级别的数据。es也使用Java开发并使用Lucene作为其核心来实现所有索引和搜索的功能,但是它的目的是通过简单的RESTful API来隐藏Lucene的复杂性,从而让全文搜索变得 简单。

0一些概念

1 启动 1.1启动elasticsearch

1.2启动elasticsearch的图形化界面

2操作(使用postman)

以下是使用postman工具进行es的操作练习,也可以在VScode中安装Elasticsearch for VScode插件,使用VSCode进行操作

2.1新建索引


指定索引的映射、指定字段的数据类型和分词器

  • text—一需要分词、也就是需要字段能够被分词检索
  • keyword—―不需要分词、keyword字段是可以被Elasticssearch sQL进行聚合分析。
  • 分词器:对中文进行分词(重要),分词器直接影响检索的效果

2.2创建索引后设置Mapping

我们可以在创建索引时设置mapping信息,当然也可以先创建索引然后再设置mapping。

2.3删除

2.4 创建document

修改文档 删除文档 2.5查询文档 2.5.1查询文档-根据id查询

GET localhost:9200/test_02/hello/1

2.5.2查询文档-querystring查询-字符串查询

这里面存在问题,后续解释

2.5.3查询文档-term查询-词条查询


在进行字符串查询时,我们发现去搜索"搜索服务器"和"钢索"都可以搜索到数据;
而在进行词条查询时,我们搜索"搜索"却没有搜索到数据;
究其原因是ElasticSearch的标准分词器导致的,当我们创建索引时,字段使用的是标准分词器。
标准分词器的效果不是很满足要求

这样的话就需要对中文支持良好的分析器的支持,支持中文分词的分词器有很多,word分词器、庖丁解牛、盘古 分词、Ansj分词等,
但我们常用的还是下面要介绍的IK分词器。

3 IK分词器

需要先安装,然后重启elasticsearch

IK提供了两个分词算法ik_smart 和 ik_max_word 其中 ik_smart 为最少切分,ik_max_word为最细粒度划分

3.1ik_smart 最少切分

3.2 ik_max_word 最细粒度划分

4ElasticSearch集群

方式:多台主机或者一台主机模拟多个结点

4.1 一些概念

分片与复制
防止一些服务器挂掉

4.2 集群创建

这就相当于创建好的一个结点,我们可以复制多份,也可以重新创建
注意,复制多份时,data目录不能有数据,应该先把data目录删除
实际上,data中存的就是索引库

然后,还需要修改每一个结点的配置文件

修改elasticsearch-clusternode*configelasticsearch.yml配置文件

node1节点:

#节点1的配置信息: 
#集群名称,保证唯一 
cluster.name: my‐elasticsearch 
#节点名称,必须不一样 
node.name: node‐1 
#必须为本机的ip地址 
network.host: 127.0.0.1 
#服务端口号,在同一机器下必须不一样,默认端口号是9200
http.port: 9200 
#集群间通信端口号,在同一机器下必须不一样 
transport.tcp.port: 9300 
#设置集群自动发现机器ip集合 
discovery.zen.ping.unicast.hosts: ["127.0.0.1:9300","127.0.0.1:9301","127.0.0.1:9302"] 

node2节点:

#节点2的配置信息: 
#集群名称,保证唯一 
cluster.name: my‐elasticsearch 
#节点名称,必须不一样 
node.name: node‐2 
#必须为本机的ip地址 
network.host: 127.0.0.1 
#服务端口号,在同一机器下必须不一样 
http.port: 9201 
#集群间通信端口号,在同一机器下必须不一样 
transport.tcp.port: 9301 
#设置集群自动发现机器ip集合 
discovery.zen.ping.unicast.hosts: ["127.0.0.1:9300","127.0.0.1:9301","127.0.0.1:9302"] 

node3节点:

 #节点3的配置信息: 
 #集群名称,保证唯一 
 cluster.name: my‐elasticsearch 
 #节点名称,必须不一样 
 node.name: node‐3 
 #必须为本机的ip地址 
 network.host: 127.0.0.1 
 #服务端口号,在同一机器下必须不一样 
 http.port: 9202 
 #集群间通信端口号,在同一机器下必须不一样 
 transport.tcp.port: 9302 
 #设置集群自动发现机器ip集合 
 discovery.zen.ping.unicast.hosts: ["127.0.0.1:9300","127.0.0.1:9301","127.0.0.1:9302"]

默认端口号是9200,同一集群下的集群名称应该是一样的
因为同一台主机的ip地址是一样的,所以应该保证端口号是不一样的

接着,启动各个节点服务器 双击elasticsearch-clusternode*binelasticsearch.bat

5ElasticSearch编程操作 5.1 创建工程,导入坐标

高亮显示代码实现

6 Spring Data ElasticSearch 使用
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/457861.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号