1、需要添加依赖
2、添加配置文件
package com.example.elasticsearch.shop.configure; import org.elasticsearch.client.RestHighLevelClient; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.data.elasticsearch.client.ClientConfiguration; import org.springframework.data.elasticsearch.client.RestClients; import org.springframework.data.elasticsearch.config.AbstractElasticsearchConfiguration; import org.springframework.data.elasticsearch.core.ElasticsearchRestTemplate; @Configuration class RestClientConfig extends AbstractElasticsearchConfiguration { @Bean @Override public RestHighLevelClient elasticsearchClient() { final ClientConfiguration clientConfiguration = ClientConfiguration.builder() .connectedTo("10.138.130.1:30217","10.138.130.1:32002","10.138.130.1:33785") .build(); return RestClients.create(clientConfiguration).rest(); } @Bean(name = { "elasticsearchOperations", "elasticsearchRestTemplate" }) public ElasticsearchRestTemplate elasticsearchTemplate() { return new ElasticsearchRestTemplate(elasticsearchClient()); } }
3、创建索引
public Boolean createIndex() { return elasticsearchRestTemplate.indexOps(ShopEntity.class).create(); }
4、创建mapping
Document mapping = elasticsearchRestTemplate.indexOps(ShopEntity.class).createMapping(ShopEntity.class); boolean brue = elasticsearchRestTemplate.indexOps(ShopEntity.class).putMapping(mapping); System.out.println(brue); System.out.println(mapping);
docker部署elasticsearch环境变量设置
cluster.name: "elasticsearch-cluster" network.host: 0.0.0.0 node.name: elasticsearch-server-01 node.master: true node.data: true discovery.seed_hosts: ["elasticsearch-server-01", "elasticsearch-server-02", "elasticsearch-server-03"] cluster.initial_master_nodes: ["elasticsearch-server-01", "elasticsearch-server-02", "elasticsearch-server-03"]
elasticsearch类型为啥去掉?
elasticsearch强掉的是全文检索,所以type没有意义了
elasticsearch倒排索引理解
1001 zhangsan
1002 lisi
1003 wagnwu zhang
倒排索引表
zhang 1001 1003
san 1001
li 1002
si 1002
9300和9200端口区别
9300是es集群之间通信端口,9200是与客户端通信端口
集群配置
config-elasticsearch.yml配置
cluster配置
cluster.name:es
node配置
node.name:node01
node.master:true
node.data:true
network配置
network.host:localhost
http.port:1001
transport.tcp.port:9301
discovery.send_hosts:["localhost:9301"] //集群第一台不需要配置,第二台需要配置,查找另外的一台es
discovery.zen.fd.ping_timeout: 1m
discovery.zen.fd.ping_retries: 5
http.cors.enabled:true
http.cors.allow-origin:"*"
分片的理解
数据分别存放到不同 的分片上,所有的分片数据组成完整的数据,分片是最小的单元
学习参考视频:https://www.bilibili.com/video/BV1hh411D7sb?p=62&spm_id_from=pageDriver