介绍
介绍
福哥需要用Java操作Elasticsearch搜索引擎,经过了一番折腾终于搞定了。现在福哥整理了用Java操作Elasticsearch的方法,分享给大家。有需要的童鞋可以参考一下!
在Java里面操作Elasticsearch搜索引擎是通过官方的elasticsearch库实现的,上一课福哥用RestClient方式实现了ES的连接和基本操作。
福哥从网上查看各种教程发现大家更加喜欢用RestHighLevelClient这个对像,对比之后发现LowLevel的客户端虽然更加自由、支持版本更全,但是它编写代码不是很友好。所以福哥今天再把HighLevel的客户端的使用方法整理出来教给大家~~
安装
pom.xml
首先我们在pom.xml里面安装依赖库elasticsearch。
<!-- elasticsearch --> <dependency> <groupId>org.elasticsearch</groupId> <artifactId>elasticsearch</artifactId> <version>7.13.0</version> </dependency> <dependency> <groupId>org.elasticsearch.client</groupId> <artifactId>elasticsearch-rest-high-level-client</artifactId> <version>7.13.0</version> </dependency>
application.properties
设置ES参数
############################################################################## # elasticsearch ############################################################################## nosql.elasticsearch.host=192.168.2.168 nosql.elasticsearch.port=9200 nosql.elasticsearch.scheme=http
使用
Bean
首先我们需要自己创建Bean来给RestHighLevelClient使用,因为Spring boot不管这事儿。
@Bean public RestHighLevelClient ESHighLevelClient( @Value("${nosql.elasticsearch.host}") String hostName, @Value("${nosql.elasticsearch.port}") int port, @Value("${nosql.elasticsearch.scheme}") String scheme ){ return new RestHighLevelClient( RestClient.builder( new HttpHost(hostName, port, scheme) ) ); }
测试
现在我们在控制器里面使用@Resource注解初始化RestHighLevelClient对象,然后使用它去操作ES搜索引擎。
因为RestHighLevelClient是通过标准的HTTP方式操作ES,所以福哥就只提供两个示例,大家可以举一反三。
@Resource RestHighLevelClient restHighLevelClient;
就一句话,就可以得到RestHighLevelClient对象的实例了。
索引列表
这个RestHighLevelClient和PHP的elasticsearch-php库一样,没有一个方法可以得到索引列表。
创建索引
indices().create
创建索引通过indices().create实现的,成功了就返回真,失败了会抛出异常。
CreateIndexRequest request; RequestOptions options; CreateIndexResponse response; try { request = new CreateIndexRequest("test"); options = RequestOptions.DEFAULT; response = restHighLevelClient.indices().create(request, options); if (response.isAcknowledged()) { out += "success"; } else { out += response.toString(); } } catch (Exception e){ out += e.getMessage(); }
总结
福哥今天给大家讲解了Java使用RestHighLevelClient操作Elasticsearch的方法,今后福哥会整理完成它,敬请期待吧~~