Elasticsearch6.x和7.x的區別
1、查找方面的區別
在增刪改方面,6.x
和7.x
是一樣的,在查找方面(分為普通查找和有高亮的查找),6.x
和7.x
有區別。
在7.x
的es中:
-
org.springframework.data.elasticsearch.core.SearchResultMapper
沒有這個類了 -
org.springframework.data.elasticsearch.core.ElasticsearchTemplate
已廢棄 -
org.springframework.data.elasticsearch.repository.ElasticsearchRepository<T,
? ID>.search(org.springframework.data.elasticsearch.core.query.Query)
已廢棄
于是在普通查找
和帶高亮的查找
方面,es6.x和7.x不一樣。
2、配置文件的區別
es6.x application.properties
# 舊版本以spring.data.elasticsearch.開頭;訪問地址配置不用聲明訪問協議,監聽es的tcp端口
# 7.x已經棄用了
spring.data.elasticsearch.cluster-name=my-application
spring.data.elasticsearch.cluster-nodes=127.0.0.1:9300
es7.x application.properties
# 新版本以spring.elasticsearch.rest.開頭;訪問地址配置需要聲明訪問協議,直接監聽es訪問端口
spring.elasticsearch.rest.uris=http://localhost:9200
3、Document注解的type屬性
es6.x 有type = “_doc”
@Document(indexName = "discusspost", type = "_doc", shards = 6, replicas = 3)
public class DiscussPost {}
es7.x 無type = “_doc”
@Document(indexName = "discusspost", shards = 6, replicas = 3)
public class DiscussPost {}
4、Elasticsearch Clients的區別
下方內容來自官方文檔:
https://docs.spring.io/spring-data/elasticsearch/docs/4.0.1.RELEASE/reference/html/#reference
ES6.x:Transport Client
@Configuration
public class TransportClientConfig extends ElasticsearchConfigurationSupport {@Beanpublic Client elasticsearchClient() throws UnknownHostException {Settings settings = Settings.builder().put("cluster.name", "elasticsearch").build(); TransportClient client = new PreBuiltTransportClient(settings);client.addTransportAddress(new TransportAddress(InetAddress.getByName("127.0.0.1"), 9300)); return client;}@Bean(name = { "elasticsearchOperations", "elasticsearchTemplate" })public ElasticsearchTemplate elasticsearchTemplate() throws UnknownHostException {return new ElasticsearchTemplate(elasticsearchClient());}
}
ES7.x:High Level REST Client
@Configuration
public class RestClientConfig extends AbstractElasticsearchConfiguration {@Override@Beanpublic RestHighLevelClient elasticsearchClient() {final ClientConfiguration clientConfiguration = ClientConfiguration.builder() .connectedTo("localhost:9200").build();return RestClients.create(clientConfiguration).rest(); }
}