初学ElasticSeacher
这周,刚接手了同事那边的工作,项目里需要用到ElasticSeacher。但是,之前从未接触过,因此,看了ES的文档,开始慢慢的知道了一些ES的知识。
一、ES简介:
Elasticsearch是一个基于Lucene的开源搜索引擎。无论在开源还是专有领域,Lucene可以被认为是迄今为止最先进、性能最好的、功能最全的搜索引擎库。
因此,Elasticsearch使用Lucene作为其核心来实现所有索引和搜索的功能,但是它的目的是通过简单的RESTful API
来隐藏Lucene的复杂性,从而让全文搜索
变得简单。不过,Elasticsearch不仅仅是Lucene和全文搜索,我们还能这样去描述它:
(1)分布式的实时文件存储,每个字段都被索引并可被搜索
(2)分布式的实时分析搜索引擎
(3)可以扩展到上百台服务器,处理PB级结构化或非结构化数据
curl -X<VERB> '<PROTOCOL>://<HOST>:<PORT>/<PATH>?<QUERY_STRING>' -d '<BODY>'
(1)VERB HTTP方法:
GET
,POST
,PUT
,HEAD
,DELETE
(2)PROTOCOL http或者https协议(只有在Elasticsearch前面有https代理的时候可用)
(3)HOST Elasticsearch集群中的任何一个节点的主机名,如果是在本地的节点,那么就叫localhost
(4)PORT Elasticsearch HTTP服务所在的端口,默认为9200
(5)PATH API路径(例如_count将返回集群中文档的数量),PATH可以包含多个组件,例如_cluster/stats或者_nodes/stats/jvm
(6)QUERY_STRING 一些可选的查询请求参数,例如
?pretty
参数将使请求返回更加美观易读的JSON数据(7)BODY 一个JSON格式的请求主体(如果请求需要的话)
举例说明:
为了计算集群中的文档数量,我们可以输入这样的命令:
curl -XGET 'http://localhost:9200/_count?pretty' -d ' { "query": { "match_all": {} } }
Elasticsearch返回一个类似
200 OK
的HTTP状态码和JSON格式的响应主体。上面的请求会得到如下的JSON格式的响应主体:{ "count" : 0, "_shards" : { "total" : 5, "successful" : 5, "failed" : 0 } }
因为,也是刚刚接触ES,只能粗略的理解文档上的意思,具体的查询和插入等操作,在接下来会不断的学习。