es2
- 引依赖 spring-boot-starter-data-elasticsearch
- 配置文件 spring.elasticsearch.rest.uris= ip:port
- 在 bean 上加注解 @Document(name = "索引名"),索引名首字母小写。 在属性上加字段 @Field(type = FieldType.XXX),指定字段类型
- 创建接口继承 ElasticsearchRepository<Goods,String> 并注入spring ; 参数一:泛型(类) , 参数二:索引 id 的类型; 例如: 以 Goods定义了一个索引,而Good中属性(索引的字段) id 为 String
- 可直接使用继承类调方法对es进行操作
=========================================
es搭集群:
按装好 es(解压缩包 或 docker) , 然后改es 配置文件的相关属性(config/elasticsearch.yml)
集群名称 (各节点同一集群的名称要一致)
cluster.name: my-application
节点名称
node.name: node-1
配置允许的访问网络
network.host: 0.0.0.0
http服务端口
http.port: 9201
配置集群间通信的端口号
transport.tcp.port: 9301
是否允许为主节点,默认true
node.master: true
是否为数据节点,默认true
node.data: true
初始配置选举master节点
cluster.initial_master_nodes: ["node-1"]
节点发现
discovery.seed_hosts: ["localhost:9301", "localhost:9302","localhost:9303"]
elasticsearch-head 跨域解决
http.cors.allow-origin: "*"
http.cors.enabled: true
作为用户,我们可以将请求发送到集群中的任何节点 ,包括主节点。 每个节点都知道任意文档所处的
位置,并且能够将我们的请求直接转发到存储我们所需文档的节点。 无论我们将请求发送到哪个节点,
它都能负责从各个包含我们所需文档的节点收集回数据,并将最终结果返回給客户端。 Elasticsearch 对
这一切的管理都是透明的。
(无论分片还是副本都是对于 索引来说的)
分片:单个索引数据量太大,可以把该索引的数据分为多分,每一份 就叫做分片。 每个分片都可存于同一集群的不同节点中。 分片由 es自动管理(检索索引时,需要各分片聚合等操作都由es管理,用户不用操心)。
副本:索引复制一份。
问: 创建一个索引时 分了 五个分片,和设置三个副本。问此索引一共有多少个分片?
(注意!分片是索引的分片,副本是索引的副本)
1个主索引 + 3个副本索引 = 总共4个索引
1个索引 分为 5个分片
所以 4 * 5 = 20个分片