• elasticsearch如何使用?


    ES和关系型数据库的数据对比

    1、创建索引库
    PUT/POST都可以,索引库名称必须全部小写,不能以下划线开头,也不能包含逗号
    curl -XPUT 'http://192.168.136.131:9200/wangxiangyu_index/'
    {"acknowledged":true}[root@localhost ~]#

    在Marvel中查看:http://localhost:5601/app/marvel

    2、创建索引

    curl -XPOST http://192.168.136.131:9200/wangxiangyu_index/employee/1 -d '{
    "first_name":"john",
    "last_name":"smith",
    "age":"25",
    "about":"I love to go rock climbing"
    }'

    如果没有明确指定索引数据的ID,ES会自动生成一个随机的ID,需要使用POST参数

    PUT和POST用法

    PUT是幂等方法,POST不是。所以PUT用于更新、POST用于新增比较合适。
    PUT,DELETE操作是幂等的。所谓幂等是指不管进行多少次操作,结果都一样。比如我用PUT修改一篇文章,然后在做同样的操作,每次操作后的结果并没有不同,DELETE也是一样。
    POST操作不是幂等的,比如常见的POST重复加载问题:当我们多次发出同样的POST请求后,其结果是创建出了若干的资源。

    还有一点需要注意的就是,创建操作可以使用POST,也可以使用PUT,区别在于POST是作用在一个集合资源之上的(/articles),而PUT操作是作用在一个具体资源之上的(/articles/123),比如说很多资源使用数据库自增主键作为标识信息,而创建的资源的标识信息到底是什么只能由服务端提供,这个时候就必须使用POST。

    GET查询索引

    查询所有
    curl -XGET http://192.168.136.131:9200/wangxiangyu_index/employee/_search
    按条件查询
    curl -XGET http://192.168.136.131:9200/wangxiangyu_index/employee/_search?q=last_name:smith

    curl -XGET http://192.168.136.131:9200/wangxiangyu_index/employee/1?pretty
    在任意查询字符串中加pretty参数,es可以得到易于识别的json结果

    curl后添加-i参数,可以得到反馈头文件
    curl -i 'http://192.168.136.131:9200/wangxiangyu_index/employee/1?pretty'

    检索文档中一部分数据
    curl -XGET http://192.168.136.131:9200/wangxiangyu_index/employee/1?_source=age,about&pretty

    只查询source部分的数据
    curl -XGET http://192.168.136.131:9200/wangxiangyu_index/employee/1?_source

    ES的更新

    ES可以使用PUT或者POST对文档进行更新,如果指定ID的文档已经存在,则执行更新操作
    注意:执行更新操作的时候
    1、ES首先将旧的文档标记为删除状态
    2、然后添加新的文档
    3、旧的文档不会立即消失,但是也无法访问
    4、ES会在你继续添加更多数据时在后台清理已经标记为删除状态的文档

    局部更新

    可以添加新字段或者更新已有的字段(必须使用POST)
    curl -XPOST http://192.168.136.131:9200/wangxiangyu_index/employee/3/_update -d '{
    "doc":{
    "city":"beijing",
    "car":"havel"
    }
    }'

    ES的删除

    curl -XDELETE http://192.168.136.131:9200/wangxiangyu_index/employee/4
    curl -XDELETE 'http://192.168.136.131:9200/wangxiangyu_index/employee/_query?q=user:kimchy'
    删除一个文档也不会立即生效,它只是被标记成已删除,ES将会在你之后添加更多索引的时候才会在后台进行删除内容的清理。

  • 相关阅读:
    MyGeneration的NHibernate代码生成模版
    ASP.NET页面控制回车触发按钮
    操作NHibernate进行多事务并发处理的一些小经验
    mysql之sql_mode =only_full_group_by 设置问题
    1、一维数组排序
    使用正则表达式构造定制的HTML5输入框
    JavaScript加密库CryptoJS的使用
    安全密码存储,该怎么做,不该怎么做?
    google 站内搜索
    导入导出xls数据
  • 原文地址:https://www.cnblogs.com/xyhero/p/9339186.html
Copyright © 2020-2023  润新知