欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

ElasticSearch 客户端API

程序员文章站 2022-07-05 14:22:37
...

ElasticSearch提供有多种语言的客户端API操作和访问文档,支持Java,JavaScrpit,Perl,Ruby等。不过其本质上都是REST接口,通过HTTP协议进行文档数据的操作。同时ElasticSearch还内置Painless脚本语言,可在API中直接使用。

1.REST接口

ElasticSearch提供的所有接口都以下划线“_”开头,在ElasticSearch中,可以使用四种HTTP方法请求索引(GET,PUT,DELETE,HEAD)。

PUT            用于创建索引

GET            用于查看索引

DELETE     用于删除索引

HEAD         用于检验索引存在性,存在返回200状态码,不存在返回404状态码

REST接口一般都对应一个资源,在ElasticSearch在操作索引时可以在URI中指定多个,也可以使用通配符匹配多个索引,也可以使用_all代表所有索引。如:

GET all/_search        GET */_search

2.Painless脚本

ElasticSearch中许多接口都支持脚本做动态运算,其中Painless是ElasticSearch支持最好的一种脚本语言。在5.0版本后提供,语法上于Java语言基本相同,最终会被编译为字节码运行在JVM上。

3.Java API

ElasticSearch官方提供的Java客户端API底层也是基于HttpClient框架,在此基础上进行了封装。分为低级REST客户端(Low Level REST Client)和高级REST客户端(High Level REST Client)两种。

低级REST客户端(Low Level REST Client)

使用RestClient对象连接ElasticSearch,在创建RestClient对象时可以指定多个节点地址以实现负载均衡,不会对请求进行编码和响应解码,在使用结束后需要调用close方法释放RestClient占用的资源,所有Elasticsearch版本兼容。

maven依赖:

<dependency>
    <groupId>org.elasticsearch.client</groupId>
    <artifactId>elasticsearch-rest-client</artifactId>
    <version>${elasticsearch.client.version}</version>
</dependency>

高级REST客户端(High Level REST Client)

高级REST客户端建立在低级REST客户端基础上,将对ElasticSearch访问的接口都封装成对象和方法,更加面向对象。使用的连接ElasticSearch的对象是RestHighLeveClient,在使用结束后需要调用close方法释放资源。

maven依赖:

<dependency>
    <groupId>org.elasticsearch.client</groupId>
    <artifactId>elasticsearch-rest-high-level-client</artifactId>
    <version>${elasticsearch.client.version}</version>
</dependency>

 

相关标签: java