来到Elasticsearch版本,请参考这个网站:
https://docs.spring.io/spring-data/elasticsearch/docs/current/reference/html/#preface.versions https://docs.spring.io/spring-data/elasticsearch/docs/current/reference/html/#preface.versions
为了将 Elasticsearch 与 SpringBoot 结合使用,我们包含三个依赖项:
<dependency>
<groupId>org.elasticsearch</groupId>
<artifactId>elasticsearch</artifactId>
<version>6.2.2</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.elasticsearch.client/elasticsearch-rest-high-level-client -->
<dependency>
<groupId>org.elasticsearch.client</groupId>
<artifactId>elasticsearch-rest-high-level-client</artifactId>
<version>6.2.2</version>
</dependency>
<dependency>
<groupId>org.springframework.data</groupId>
<artifactId>spring-data-elasticsearch</artifactId>
<version>3.2.0.RELEASE</version>
</dependency>
如您所见,我的 Elasticsearch 版本是 6.2.2(以匹配服务器端版本),我的 Spring 版本是 2.1.13.RELEASE。
基本上使用了2个客户端。我建议您使用 Rest High Level Client。另一种是传输客户端。
以下是将 Rest High Level Client 集成到您的应用程序中的方法:
@Configuration
public class ElasticClientService extends AbstractElasticsearchConfiguration {
@Override
@Bean
public RestHighLevelClient elasticsearchClient() {
final ClientConfiguration clientConfiguration = ClientConfiguration.builder()
.connectedTo("localhost:9200").build();
return RestClients.create(clientConfiguration).rest();
}
}
创建客户端后,剩下的就是执行 CRUD 操作。
@Autowired
ElasticClientService client;
public void save(Object object, String id, String type, String indexName) throws IOException {
ObjectMapper objectMapper = new ObjectMapper();
Map<String, Object> objectMap = objectMapper.convertValue(object, Map.class);
IndexRequest indexRequest = new IndexRequest(indexName, type, id);
indexRequest.source(objectMap);
IndexResponse response = client.elasticsearchClient().index(indexRequest);
}
public void deleteById(String id, String type, String indexName) throws IOException {
DeleteRequest request = new DeleteRequest(indexName, type, id);
DeleteResponse deleteResponse = client.elasticsearchClient().delete(request);
}
以上两个操作在弹性索引中创建一个文档(行),并根据ID从弹性索引中删除一个文档(行)。
更多参考请参见:https://www.elastic.co/guide/en/elasticsearch/client/java-rest/6.2/java-rest-high-document-delete.html https://www.elastic.co/guide/en/elasticsearch/client/java-rest/6.2/java-rest-high-document-delete.html *
*根据您的需要更改版本
你可以参考this https://github.com/spring-projects/spring-data-elasticsearch为进一步协助