直观一点,现在源码已经可以进行调试,那就先熟悉一下,elasticsearch的操作逻辑。最基础的就是url,elasticsearch本身也做了request和response的封装,有一定了解的话,用起来还是比较方便的。
URL
1、创建index[当然了,你要是直接导入数据,elasticsearch也是会自动为你创建对应的mappings结构]
indexName:test 对应的可以理解成一个数据库吧
type:document 一张表
properties:表的元数据
curl -X PUT "localhost:9200/test" -H 'Content-Type: application/json' -d'
{
"settings" : {
"number_of_shards" : 1
},
"mappings" : {
"document" : {
"properties" : {
"user" : { "type" : "text" },
"post_date" : { "type" : "text" },
"message" : { "type" : "text" }
}
}
}
}'
2、导入数据
如果没有指定_id,那就要定义为post请求
curl -X POST "localhost:9200/test/document" -H 'Content-Type: application/json' -d'
{
"user" : "kimchy",
"post_date" : "2009-11-15T14:12:12",
"message" : "trying out Elasticsearch"
}'
如果定义了_id那就是put请求,_id为1
curl -X PUT "localhost:9200/test/document/1" -H 'Content-Type: application/json' -d'
{
"user" : "kimchy",
"post_date" : "2009-11-15T14:12:12",
"message" : "trying out Elasticsearch"
}'
3、删除index
curl -X DELETE "localhost:9200/twitter"
4、查询的语法太多了,慢慢了解吧。
curl -X POST "localhost:9200/_search" -H 'Content-Type: application/json' -d'
{
"query" : {
"match_all" : {}
}
}'
参考 Elasticsearch 5.x 源码分析(2)TransportClient和RestClient
RestClient 9200
在后续的版本中提供了RestHighLevelClient,做的就是对json数据进行了包装。request有很多builder包装。response包装成了对应的response。但是并不是包装了所有的请求。
maven pom文件
<dependencies>
<dependency>