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)两种。