搜索引擎Elasticsearch6.x 入门,对于全文搜索效果拔群,很好用的一个搜索框架
一、简介
基本组件: (1).索引(index):文档容器,类似于关系型数据库中的库。索引名必须是小写字母。
(2).类型(type):类型是索引内部的逻辑分区。其意义完全取决与用户需求,一个索引内部可定义多个类型。类似于关系型数据库中的表结构,字段。
(3).文档(document):文档是Lucene索引和搜索的原子单位。它包含多个域。基于JSON格式存储。每个域的格式类似于字典
(4).映射(mapping):原始内容存储为文档之前的分析,映射就是定义此映射过程该如何实现。(例如切词,过滤)
集群组件:(1)Cluster:ES的集群标识为集群名称。默认为“elasticsearch”,节点靠此名字决定加入到哪一个集群中。一个节点只能属于一个集群。
(2).Node:运行单个ES实例的主机。节点的标识靠节点名。
(3).Shard:将索引切割成为的物理存储组件,但每一个shared都是一个独立且完整的索引,创建索引时,ES默认分割为5个shard。用户也可以按需自定义,创建完成后不可修改。shard有两种,primary和replica。用于负载均衡。
ES Cluster启动过程。通过多播(或单播)在9300/tcp查找同一集群中的其他节点,并建立通信。集群中所有节点会选举出一个主节点负责管理整个集群状态。以及在集群范围内决定shared的分布。
二.配置文件
# vim /etc/elasticsearch/elasticsearch.yml
cluster.name: my-elastic
# 集群名字,相同集群名字的节点会放到同一个集群下
node.name: "node-1"
# 节点名字
discovery.zen.minimum_master_nodes: 2
#指定集群中的节点中有几个有master资格的节点。
#对于大集群可以写3个以上。
discovery.zen.ping.timeout: 3s
#默认是3s,这是设置集群中自动发现其它节点时ping连接超时时间
discovery.zen.ping.multicast.enabled: false
#设置是否打开多播发现节点,默认是true。
network.bind_host: 192.168.40.129
#设置绑定的ip地址,这是我的虚拟机的IP。
network.publish_host: 192.168.40.129
#设置其它节点和该节点交互的ip地址。
network.host: 0.0.0.0
#同时设置bind_host和publish_host上面两个参数。
transport.tcp.port: 9300
#设置参与集群的端口
http.port: 9200
#接收请求端口
#discovery.zen.ping.unicast.hosts:["节点1的 ip","节点2 的ip","节点3的ip"]
#指明集群中其它可能为master的节点ip,以防es启动后发现不了集群中的其他节点。
三.索引操作
索引操作
(1)查看集群中都有哪些索引。
curl -X GET localhost:9200/_cat/indices
(2)创建索引。
# curl -X PUT localhost:9200/test_index?pretty
{
"acknowledged" : true,
"shards_acknowledged" : true,
"index" : "test_index"
}
(3)删除索引。
# curl -X DELETE localhost:9200/test_index?pretty
{
"acknowledged" : true
}