首页 > 其他 > 详细

elasticsearch 口水篇(2)CRUD

时间:2014-02-09 19:52:09      阅读:350      评论:0      收藏:0      [点我收藏+]

Sense

为了方便、直观的使用es的REST Api,我们可以使用sense。Sense是Chrome浏览器的一个插件,使用简单。

如图:

bubuko.com,布布扣

Sense安装:

https://chrome.google.com/webstore/detail/sense/doinijnbnggojdlcjifpdckfokbbfpbo

或者直接去chrome网上应用店搜索安装。

bubuko.com,布布扣

 


 

 

CRUD

URL的格式:

http://localhost:9200/<index>/<type>/[<id>]

其中index、type是必须提供的。

id是可选的,不提供es会自动生成。

index、type将信息进行分层,利于管理。

 

索引文档(Create、update)

首先我们塞入一条数据,命令如下:

1
2
3
4
5
6
{
    "title": "The Godfather",
    "director": "Francis Ford Coppola",
    "year": 1972
}‘

-d代表一个json格式的对象,这里是一部电影数据。

运行结果如下:

bubuko.com,布布扣

通过默认查询我们可以查询到刚才添加的数据,如下:

bubuko.com,布布扣

下面我们来修改这条数据,添加电影的类型,如下:

1
2
3
4
5
6
7
{
    "title": "The Godfather",
    "director": "Francis Ford Coppola",
    "year": 1972,
    "genres": ["Crime", "Drama"]
}‘

再查询可以发现该数据多了一个字段:genres。

bubuko.com,布布扣

 

通过id进行查询(getting by id)

1

bubuko.com,布布扣

 

删除文档(deleting document)

1
curl -XDELETE "http://localhost:9200/movies/movie/1" -d‘‘

bubuko.com,布布扣

再通过getting by id,返回:

bubuko.com,布布扣 

 

检索(search)

为了检索我们先多添加几篇文档:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
{
    "title": "The Godfather",
    "director": "Francis Ford Coppola",
    "year": 1972,
    "genres": ["Crime", "Drama"]
}‘
 
{
    "title": "Lawrence of Arabia",
    "director": "David Lean",
    "year": 1962,
    "genres": ["Adventure", "Biography", "Drama"]
}‘
 
{
    "title": "To Kill a Mockingbird",
    "director": "Robert Mulligan",
    "year": 1962,
    "genres": ["Crime", "Drama", "Mystery"]
}‘
 
{
    "title": "Apocalypse Now",
    "director": "Francis Ford Coppola",
    "year": 1979,
    "genres": ["Drama", "War"]
}‘
 
{
    "title": "Kill Bill: Vol. 1",
    "director": "Quentin Tarantino",
    "year": 2003,
    "genres": ["Action", "Crime", "Thriller"]
}‘
 
{
    "title": "The Assassination of Jesse James by the Coward Robert Ford",
    "director": "Andrew Dominik",
    "year": 2007,
    "genres": ["Biography", "Crime", "Drama"]
}‘

  

最好再参考下:ElasticSearch‘s query DSL

1
2
3
4
5
{
    "query": {
        //Query DSL here
    }
}

  

--基本的文本检索

1
2
3
4
5
6
7
8
curl -XPOST "http://localhost:9200/_search" -d‘
{
    "query": {
        "query_string": {
            "query": "kill"
        }
    }
}‘

  

--指定字段进行检索

1
2
3
4
5
6
7
8
9
curl -XPOST "http://localhost:9200/_search" -d‘
{
    "query": {
        "query_string": {
            "query": "ford",
            "fields": ["title"]
        }
    }
}‘

fields默认为"_all" 。

 

--过滤(filtering)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
curl -XPOST "http://localhost:9200/_search" -d‘
{
    "query": {
        "filtered": {
            "query": {
                "query_string": {
                    "query": "drama"
                }
            },
            "filter": {
                "term": { "year": 1962 }
            }
        }
    }
}‘

  

详细api,参考:

http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/index.html

 

部分内容摘抄自:

http://joelabrahamsson.com/elasticsearch-101/

elasticsearch 口水篇(2)CRUD

原文:http://www.cnblogs.com/huangfox/p/3541714.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!