首页 > 其他分享 >ES003-CURL使用

ES003-CURL使用

时间:2023-04-03 21:38:54浏览次数:39  
标签:info ES003 http 9200 使用 CURL ware curl localhost


1、CURL简介

简单认为是可以在命令行下访问url的一个工具,curl是利用URL语法在命令行方式下工作的开源文件传输工具,使用curl可以简单实现常见的get/post请求。


curl  后面跟的参数:


     -x  指定http请求的方法     HEAD  GET POST  PUT DELETE
     -d   指定要传输的数据




2、CURL创建索引库


curl -XPUT http://localhost:9200/jf



说明: PUT/POST都可以


3、CURL创建索引-PUT/POST


PUT和POST的用法区别


PUT是幂等方法,POST不是。所以PUT用于更新、POST用于新增比较合适。
PUT,DELETE操作是幂等的。所谓幂等是指不管进行多少次操作,结果都一样。比如我用PUT修改一篇文章,然后在做同样的操作,每次操作后的结果并没有不同,DELETE也是一样。
POST操作不是幂等的,比如常见的POST重复加载问题:当我们多次发出同样的POST请求后,其结果是创建出了若干的资源。
还有一点需要注意的就是,创建操作可以使用POST,也可以使用PUT,区别在于POST是作用在一个集合资源之上的(/articles),而PUT操作是作用在一个具体资源之上的(/articles/123),再通俗点说,如果URL可以在客户端确定,那么就使用PUT,如果是在服务端确定,那么就使用POST,比如说很多资源使用数据库自增主键作为标识信息,而创建的资源的标识信息到底是什么只能由服务端提供,这个时候就必须使用POST。




#创建索引库


curl -XPUT 'http://localhost:9200/jf/ware_info/100' -d '{"id":"201","wareCode":"23412","wareName":"50yuan","kind":"huafei","marketValue":20,"countValue":19}'
 
 curl -XPUT 'http://localhost:9200/jf/ware_info/101' -d '{"id":"202","wareCode":"23414","wareName":"60yuan","kind":"huafei","marketValue":200,"countValue":200}'
 
 curl -XPUT 'http://localhost:9200/jf/ware_info/103' -d '{"id":"203","wareCode":"23415","wareName":"70yuan","kind":"huafei","marketValue":2000,"countValue":2000}'
 

 curl -XPUT 'http://localhost:9200/jf/ware_info/200' -d '{"id":"204","wareCode":"3000","wareName":"30liuliang","kind":"liuliang","marketValue":3000,"countValue":3000}'
 
 curl -XPUT 'http://localhost:9200/jf/ware_info/201' -d '{"id":"205","wareCode":"3001","wareName":"40liuliang","kind":"liuliang","marketValue":4000,"countValue":4000}'
 
 curl -XPUT 'http://localhost:9200/jf/ware_info/203' -d '{"id":"206","wareCode":"3002","wareName":"50liuliang","kind":"liuliang","marketValue":5000,"countValue":5000}'



注意事项:ES创建索引时注意


索引库名称必须要全部小写,不能以下划线开头,也不能包含逗号
如果没有明确指定索引数据的ID,那么es会自动生成一个随机的ID,需要使用POST参数
curl -XPOST 'http://localhost:9200/test/stu_info' -d '{"name":"zs","age":20}'


如果想要确定我们创建的都是全新的内容



1:使用自增ID
2:在url后面添加参数
     curl -XPUT http://localhost:9200/jf/emp/2?op_type=create -d '{"name":"flxy","age":25}'
     curl -XPUT http://localhost:9200/jf/emp/2/_create -d '{"name":"flxy","age":25}'
如果成功创建了新的文档,Elasticsearch将会返回常见的元数据以及201 Created的HTTP反馈码。而如果存在同名文件,Elasticsearch将会返回一个409 Conflict的HTTP反馈码






4、CURL查询索引-GET


4.1 根据id查询

[root@mycluster elasticsearch-1.4.4]# curl -XGET 'http://localhost:9200/jf/ware_info/200?pretty'
 
 {
 
   "_index" : "jf",
 
   "_type" : "ware_info",
 
   "_id" : "200",
 
   "_version" : 1,
 
   "found" : true,
 
   "_source":{"ware_code":3000,"ware_name":"30liuliang","kind":"liuliang"}
 
 }


4.2 在任意的查询字符串中添加pretty参数,es可以得到易于识别的json结果。
curl后添加-i 参数,这样你就能得到反馈头文件

[root@mycluster elasticsearch-1.4.4]# curl -i 'http://localhost:9200/jf/ware_info/200?pretty'
 
 HTTP/1.1 200 OK
 
 Content-Type: application/json; charset=UTF-8
 
 Content-Length: 175
 

 {
 
   "_index" : "jf",
 
   "_type" : "ware_info",
 
   "_id" : "200",
 
   "_version" : 1,
 
   "found" : true,
 
   "_source":{"ware_code":3000,"ware_name":"30liuliang","kind":"liuliang"}
 
 }


4.3 检索文档中的一部分,如果只需要显示指定字段,
     curl -XGET http://localhost:9200/jf/ware_info/200?_source=ware_code,ware_name&pretty




4.4 如果只需要source的数据
 [root@mycluster elasticsearch-1.4.4]# curl -XGET http://localhost:9200/jf/ware_info/200/_source

{"ware_code":3000,"ware_name":"30liuliang","kind":"liuliang"}


4.5 查询所有
     curl -XGET http://localhost:9200/jf/ware_info/_search
你可以再返回的 hits 中发现我们录入的文档。搜索会默认返回最前的10个数值。



4.6 CURL 查询索引-GET


curl -XGET  http://localhost:9200/jf/ware_info/_search?q=ware_name:50yuan



4.7 ES使用DSL查询 


Domain Specific Language 领域特定语言



curl -XGET http://localhost:9200/jf/ware_info/_search -d '{"query":{"match":{"ware_name":"50yuan"}}}'




备注:数据格式化后的效果


{ "query": { "match": { "ware_name": "50yuan" } } }




5、ES更新操作
4.1 ES可以使用PUT或者POST对文档进行更新,如果指定ID的文档已经存在,则执行更新操作
注意:执行更新操作的时候
ES首先将旧的文档标记为删除状态
然后添加新的文档
旧的文档不会立即消失,但是你也无法访问
ES会在你继续添加更多数据的时候在后台清理已经标记为删除状态的文档
4.2 局部更新,可以添加新字段或者更新已有字段(必须使用POST)
curl -XPOST http://localhost:9200/jf/ware_info/200/_update -d '{"doc":{"ware_info":"xxxxxxx","kind":"yyyyyy"}}'
6、ES删除操作
curl -XDELETE http://localhost:9200/test/stu_info/4/
如果文档存在,es会返回200 ok的状态码,found属性值为true,_version属性的值+1
如果文档不存在,es会返回404 Not Found的状态码,found属性值为false,但是_version属性的值依然会+1,这个就是内部管理的一部分,它保证了我们在多个节点间的不同操作的顺序都被正确标记了
注意:删除一个文档也不会立即生效,它只是被标记成已删除。Elasticsearch将会在你之后添加更多索引的时候才会在后台进行删除内容的清理。
通过查询API删除指定索引库下指定类型下的数据
curl -XDELETE 'http://localhost:9200/test/stu_info/_query?q=user:kimchy'

curl -XDELETE 'http://localhost:9200/test/stu_info/_query' -d '{
    "query" : {
        "term" : { "user" : "kimchy" }
    }
}'
7、ES批量操作



与mget类似,bulk API可以帮助我们同时执行多个请求
格式:
action:index/create/update/delete
metadata:_index,_type,_id
request body:_source(删除操作不需要)
          { action: { metadata }}\n
          { request body        }\n
          { action: { metadata }}\n
          { request body        }\n
使用curl -XPOST -d 时注意,不能直接在json字符串中添加\n字符,应该按回车
create 和index的区别
如果数据存在,使用create操作失败,会提示文档已经存在,使用index则可以成功执行。
使用文件的方式
vi requests 
curl  -XPOST/PUT localhost:9200/_bulk --data-binary @request;
bulk请求可以在URL中声明/_index 或者/_index/_type
bulk一次最大处理多少数据量
bulk会把将要处理的数据载入内存中,所以数据量是有限制的
最佳的数据量不是一个确定的数值,它取决于你的硬件,你的文档大小以及复杂性,你的索引以及搜索的负载
一般建议是1000-5000个文档,如果你的文档很大,可以适当减少队列,大小建议是5-15MB,默认不能超过100M



标签:info,ES003,http,9200,使用,CURL,ware,curl,localhost
From: https://blog.51cto.com/u_14361901/6167546

相关文章

  • 014redis的优化&redis工具的使用
    一、redis优化1、精简键名和键值键名:尽量精简,但是也不能单纯为了节约空间而使用不易理解的键名。键值:对于键值的数量固定的话可以使用0和1这样的数字来表示,(例如:male/female、right/wrong)2、当业务场景不需要数据持久化时,关闭所有的持久化方式可以获得最佳的性能内部编码优化(......
  • flask使用二
    cbv分析视图函数fromflaskimportFlask,requestfromflask.viewsimportView,MethodViewapp=Flask(__name__)app.debug=TrueclassIndexView(MethodView):defget(self):print(request.method)return'get请求'defpost(sel......
  • Prism 中区域、模块化、导航功能、对话服务、发布订阅的简单使用
    本文演示了Prism框架在WPF编程中的几个基本功能环境:VisualStudio2022内容介绍Prism几个基本功能,包括区域、模块化、导航功能、对话服务、发布订阅区域可以在XMAL中定义某ContentControl为Prism的区域,并在App中注册模块://这个区域的名字为ContentRegion......
  • Flask快速入门day02(1、CBV使用及源码分析,2、模板用法,3、请求与响应的基本用法,4、sessi
    目录Flask框架一、CBV分析1、CBV编写视图类方法二、CBV源码分析1、CBV源码问题2、补充问题3、总结三、模板1、py文件2、html页面四、请求与响应1、request常用方法2、response常用方法五、session及源码分析1、session的基本使用2、session源码分析六、闪现七、请求扩展Flask框......
  • pandas dataframe使用方法
    目录基本读写:数据可视化基本读写:使用PandasDataFrame的步骤如下:导入Pandas模块pythonimportpandasaspd创建DataFramepythondf=pd.DataFrame({ '姓名':['张三','李四','王五'], '年龄':[18,25,30], '性别':['男&#......
  • shell命令调用http接口(curl方式)
    shell命令调用http接口(curl方式) 样例1、curl-H"Content-Length:0"-XGET"http://127.0.0.1:8080"2、curl-H"Content-Type:application/json"-H"connection:Keep-Alive"-s-XPOST-d'{"id":"1"......
  • Python使用Matplotlib画以日期为X轴的图
    Python使用Matplotlib画以日期为X轴的图步骤:用pd把字符串格式的日期转成date格式.使用 AutoDateLocator 设置x轴的属性.1frommatplotlibimportpyplotasplt2importpandasaspd3frommatplotlib.datesimport(4MonthLocator,5AutoDateLoc......
  • 【Flask】cbv源码分析 flask模板使用 flask请求与响应 session及源码分析 闪现flash
    目录上节回顾今日内容1cbv分析1.1源码分析2模板2.1app.py2.2index.html3请求与响应4session及源码分析4.1session的使用4.2源码分析4.3session执行原理5闪现6请求扩展练习上节回顾#1web框架 -django大而全-flask小而精-sanic-fastapi-同......
  • 如何使用Java程序实现二叉数
    二叉树是一种重要的数据结构,它由一组节点组成,每个节点可以拥有最多两个子节点。使用Java可以很容易地实现一个二叉树。下面将介绍如何使用Java实现二叉树。二叉树的节点定义一个二叉树的节点可以定义为一个类,其中至少需要包含以下属性:节点值左子节点右子节点在Java中,我们......
  • Hi3516A开发--ethtool安装和使用
    一、下载ethtool-4.6.tar.gz下载二、安装解压:tar-xvfethtool-4.6.tar.gz配置:./configure--host=arm-hisiv300-linux //--host指定的是交叉编译工具链的前缀编译:make生成:ethtool查看:fileethtoolethtool:ELF32-bitLSB executable,ARM,EABI5version1(SYSV),dynamic......