• elasticsearch 口水篇(2)CRUD Sense


    Sense

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

    如图:

    Sense安装:

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

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


    CRUD

    URL的格式:

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

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

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

    index、type将信息进行分层,利于管理。index可以理解为数据库,type理解为数据表。

    补一张图(0211) 

    The type called another_type and the index called another is shown in order to emphasize that Elasticsearch is multi-tenant, by which we mean that a single server can store multiple indexes and multiple types.

    上面解释了“多租户”! 

    索引文档(Create、update)

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

    curl -XPUT "http://localhost:9200/movies/movie/1" -d'
    {
        "title": "The Godfather",
        "director": "Francis Ford Coppola",
        "year": 1972
    }'
    

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

    运行结果如下:

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

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

    curl -XPUT "http://localhost:9200/movies/movie/1" -d'
    {
        "title": "The Godfather",
        "director": "Francis Ford Coppola",
        "year": 1972,
        "genres": ["Crime", "Drama"]
    }'
    

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

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

    curl -XGET "http://localhost:9200/movies/movie/1" -d''
    

    删除文档(deleting document)

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

    再通过getting by id,返回:

     

    检索(search)

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

    curl -XPUT "http://localhost:9200/movies/movie/1" -d'
    {
        "title": "The Godfather",
        "director": "Francis Ford Coppola",
        "year": 1972,
        "genres": ["Crime", "Drama"]
    }'
    
    curl -XPUT "http://localhost:9200/movies/movie/2" -d'
    {
        "title": "Lawrence of Arabia",
        "director": "David Lean",
        "year": 1962,
        "genres": ["Adventure", "Biography", "Drama"]
    }'
    
    curl -XPUT "http://localhost:9200/movies/movie/3" -d'
    {
        "title": "To Kill a Mockingbird",
        "director": "Robert Mulligan",
        "year": 1962,
        "genres": ["Crime", "Drama", "Mystery"]
    }'
    
    curl -XPUT "http://localhost:9200/movies/movie/4" -d'
    {
        "title": "Apocalypse Now",
        "director": "Francis Ford Coppola",
        "year": 1979,
        "genres": ["Drama", "War"]
    }'
    
    curl -XPUT "http://localhost:9200/movies/movie/5" -d'
    {
        "title": "Kill Bill: Vol. 1",
        "director": "Quentin Tarantino",
        "year": 2003,
        "genres": ["Action", "Crime", "Thriller"]
    }'
    
    curl -XPUT "http://localhost:9200/movies/movie/6" -d'
    {
        "title": "The Assassination of Jesse James by the Coward Robert Ford",
        "director": "Andrew Dominik",
        "year": 2007,
        "genres": ["Biography", "Crime", "Drama"]
    }'
    

      

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

    {
        "query": {
            //Query DSL here
        }
    }
    

      

    --基本的文本检索

    curl -XPOST "http://localhost:9200/_search" -d'
    {
        "query": {
            "query_string": {
                "query": "kill"
            }
        }
    }'
    

      

    --指定字段进行检索

    curl -XPOST "http://localhost:9200/_search" -d'
    {
        "query": {
            "query_string": {
                "query": "ford",
                "fields": ["title"]
            }
        }
    }'
    

    fields默认为"_all" 。

    --过滤(filtering)

    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/


    query VS filter

    摘录一张有意思的ppt。

  • 相关阅读:
    C#.net开发 List与DataTable相互转换
    asp.net 7.分页
    PostgreSQL 创建触发器 Trigger
    PostgreSQL 的命令行工具 psql 的常用命令
    安装SQL Server DQS 和 MDS
    Ubuntu ssh-keygen 生成公钥并添加到远程服务器上
    阿里云code基础文档
    忘记本地MySQL数据库密码的解决方法
    谷歌浏览器安装jsonview
    phpstorm汉化包
  • 原文地址:https://www.cnblogs.com/huangfox/p/3541714.html
Copyright © 2020-2023  润新知