学习Elasticsearch
Posted 超仔个人空间
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了学习Elasticsearch相关的知识,希望对你有一定的参考价值。
上次我们说到Elasticsearch的windows安装和基本调用的代码,今天我们说说如何和Elasticsearch通信
Elasticsearch是基于HTTP协议,以JSON为数据交互格式的RESTful API
其他所有程序语言都可以使用RESTful API,通过9200端口的与Elasticsearch进行通信,你可以使用你喜欢的WEB客户端,
事实上,如你所见,你甚至可以通过 curl 命令与Elasticsearch通信。
注: Elasticsearch官方提供了多种程序语言的客户端——Groovy,javascript, .NET,php,Perl,Python,以及 Ruby
向Elasticsearch发出的请求的组成部分与其它普通的HTTP请求是一样的:
curl -X<http> '<protocol >://<hostip >/<path>?<query>' -d '<body>'
http: HTTP方法: GET , POST , PUT , HEAD , DELETE
protocol http或者https协议
port Elasticsearch HTTP服务所在的端口,默认为9200
query一些可选的查询请求参数
body 一个JSON格式的请求参数
举例:
curl -XGET 'http://localhost:9200/_count?pretty' -d '
{
"query": {
"match_all": {}
}
}
响应
{
"count" : 0,
"_shards" : {
"total" : 5,
"successful" : 5,
"failed" : 0
}
}
下面我们来说说Elasticsearch面向文档的概念
Elasticsearch是面向文档的,这意味着它可以存储整个对象或者文档(document)。
Elasticsearch集群可以包含多个索引(indices)(相当于数据库),每一个索引可以包含多个类型(types)(相当于表),每一个类型包含多
个文档(documents)(相当于数据库的行值),然后每个文档包含多个字段(Fields)(也就是数据库中的列值)
所以说我们现在举个具体的例子
PUT http://localhost:9200/index_one/types_one/id_one
{
"name" : "name",
"age" : 25,
"interests": [ "play", "read" ]
}
这样我们就创建成功一个索引名为index_one,类型为types_one并且id为id_one
其中数据为三列name,age,interests
顺便说一下如果不输入id也可以这样会随机生成一个唯一的id串
下面我们在看看查询我们创建这条信息的方式
GET http://localhost:9200/index_one/types_one/id_one
{
"_index" : "index_one",
"_type" : "types_one",
"_id" : "id_one",
"_version" : 1,
"found" : true,
"_source" : {
"name" : "name",
"age" : 25,
"interests": [ "play", "read" ]
}
}
这样基本的增加和查询就完事后面我们会在写一些复杂的查询和更新数据的方式
感兴趣的小伙伴就加关注吧我们一起学习进步吧
以上是关于学习Elasticsearch的主要内容,如果未能解决你的问题,请参考以下文章