前言
elasticsearch是个全文搜索工具,就是用来搜索的。现在来简单体验一下他的一些基本功能。
基本概念
在进行搜索之前,先了解一下elasticsearch的一些基本概念。
文档(document)
文档(document)是可以被索引的基本单位,在elasticsearch中文档用json格式来进行标示。如一个人员信息、某个产品信息。elasticsearch是面向文档的,这意味着它可以存储整个对象或文档(document)。然而它不仅仅是存储,还会索引(index)每个文档的内容使之可以被搜索。
类型(type)
在Elasticsearch,文档都归属一个类型(type),就如同java中类和对象一样,类型(type)就如同class,而文档(document)就如object。而这些类型存在于索引(index)中。
索引(index)
索引是具有某些相似特征的文档的集合。例如,您可以拥有客户数据的索引,产品目录的另一个索引,以及订单数据的另一个索引。索引由名称(必须全部为小写)标识,并且此名称用于在对其中的文档执行索引,搜索,更新和删除操作时引用索引。在单个集群中,您可以根据需要定义任意数量的索引。
一个索引(index)就像是传统关系数据库中的数据库,它是相关文档存储的地方。
在Elasticsearch中,文档归属于一种类型(type),而这些类型存在于索引(index)中,我们可以画一些简单的对比图来类比传统关系型数据库:
Relational DB -> Databases -> Tables -> Rows -> Columns
Elasticsearch -> Indices -> Types -> Documents -> Fields
调用格式
在使用elasticsearch时,可以使用resetful API进行访问。
向Elasticsearch发出的请求的组成部分与其它普通的HTTP请求是一样的:
curl -X<VERB> '<PROTOCOL>://<HOST>:<PORT>/<PATH>?<QUERY_STRING>' -d '<BODY>'
- VERB HTTP方法:GET, POST, PUT, HEAD, DELETE
PROTOCOL http或者https协议(只有在Elasticsearch前面有https代理的时候可用) - HOST Elasticsearch集群中的任何一个节点的主机名,如果是在本地的节点,那么就叫localhost
- PORT Elasticsearch HTTP服务所在的端口,默认为9200
- PATH API路径(例如_count将返回集群中文档的数量&#x