安装完成之后,我们该开始学习关于ElasticSearch最基本的CURD操作了。
ElasticSearch作为一个基于Lucene的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,其接口也是RESTful 风格。文档储存类型也是json格式。那么我们就可以像操作webapi一样简单的操作ElasticSearch进行CRUD了。
在Linux服务器上我们可以通过curl命令操作。但是作为window用户,我们大都不太熟悉curl命令。下面我将介绍一款基于chrome的插件Sense。通过Sense扩展插件我们可以很方便的操作ElasticSearch。
安装Sense如图:
CRUD
URL的格式:
http://localhost:9200/<index>/<type>/[<id>]
其中index、type是必须提供的。
id是一条数据(文档)的唯一标识,如果重复 则覆盖已经存在的。
index、type将信息进行分层,利于管理。index可以理解为数据库,type理解为数据表。
添加
PUT /db_news/news/1 { "title":"第一条新闻", "author":"王军华", "content":"根据中的的最新调查显示" } PUT /db_news/person/5 { "name":"jack", "age":53, "intro":"jack但是的是个乖孩子" }
Sense操作如图:(PUT需要顶个写,json字段名称需要加引号)
修改/覆盖
修改就是将id置为和存在的记录一致。
删除
DELETE /db_news/news/1
如图:
查询
查询所有库,所有表的文档
GET /_search { "query": { "match_all": {} } }
查询指定库指定表的一条文档
GET /db_news/person/2
如图:
在所有库所有表中查找某个字段等于某个值的文档
POST /_search { "query": { "query_string": { "query": "jack" } } }
在指定库指定表中查找某个字段等于某个值的文档
POST /db_news/person/_search { "query": { "query_string": { "query": "jack" } } }
在指定库指定表中查找指定个字段等于某个值的文档
POST /db_news/person/_search { "query": { "query_string": { "fields": ["age"], "query": 13 } } }
多条件并列条件查询
POST /db_news/person/_search { "query": { "filtered": { "filter": { "term": { "age": 13, "name":"tom" } } } } }
详细CRUD命令请参考官方:
http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/index.html
部分内容摘抄自:
http://joelabrahamsson.com/elasticsearch-101/
ElasticSearch系列学习