Elasticsearch的简单使用案例
来源:互联网 发布:广州数控g73编程实例 编辑:程序博客网 时间:2024/05/26 05:52
- 1.添加一个学生的成绩(ip: port/库/表/id)
curl -XPUT 'http://192.168.80.123:9200/school/jsj/1' -d '{ "class": "软件工程", "subject": "math", "name": { "first": "li", "last": "jie" }, "create_time": "2017-08-10", "score": "98"}'
- 2.通过浏览器用id查询学生成绩
http://192.168.80.123:9200/school/jsj/1
结果:
{ "_index": "school", "_type": "jsj", "_id": "1", "_version": 1, "found": true, "_source": { "class": "软件工程", "subject": "math", "name": { "first": "li", "last": "jie" }, "create_time": "2017-08-10", "score": "98" }}
- 3.在linux中通过curl的方式用id查询学生成绩
curl -XGET 'http://192.168.80.123:9200/school/jsj/1'
返回:
{ "_index": "school", "_type": "jsj", "_id": "1", "_version": 1, "found": true, "_source": { "class": "软件工程", "subject": "math", "name": { "first": "li", "last": "jie" }, "create_time": "2017-08-10", "score": "98" }}
- 4.添加另外一个学生的成绩
curl -XPUT 'http://192.168.80.123:9200/school/jsj/2' -d '{ "subject": "math", "name": { "first": "zhang", "last": "san" }, "create_time": "2017-07-01", "score": "59"}'
- 5.通过_source获取指定的字段
curl -XGET 'http://192.168.80.123:9200/school/jsj/1?_source=subject'
结果:
{ "_index": "school", "_type": "jsj", "_id": "1", "_version": 1, "found": true, "_source": { "subject": "math" }}
curl -XGET 'http://192.168.80.123:9200/school/jsj/1?_source=subject,score'
结果:
{ "_index": "school", "_type": "jsj", "_id": "1", "_version": 1, "found": true, "_source": { "score": "98", "subject": "math" }}
curl -XGET 'http://192.168.80.123:9200/school/jsj/1?_source'
结果:
{ "_index": "school", "_type": "jsj", "_id": "1", "_version": 1, "found": true, "_source": { "class": "软件工程", "subject": "math", "name": { "first": "li", "last": "jie" }, "create_time": "2017-08-10", "score": "98" }}
- 6.可以通过覆盖的方式更新
curl -XPUT 'http://192.168.80.123:9200/school/jsj/1' -d '{ "subject": "math", "name": { "first": "li", "last": "jie" }, "create_time": "2017-08-11", "score": "100"}'
返回:
{ "_index": "school", "_type": "jsj", "_id": "1", "_version": 2, "result": "updated", "_shards": { "total": 2, "successful": 1, "failed": 0 }, "created": false}
再查看就变成100分了.
- 7.通过_updateAPI的方式单独更新你想要更新的
curl -XPOST 'http://192.168.80.123:9200/school/jsj/1/_update' -d '{ "doc": { "score": "666" }}'
返回:
{ "_index": "school", "_type": "jsj", "_id": "1", "_version": 4, "result": "updated", "_shards": { "total": 2, "successful": 1, "failed": 0 }}
再查看就变成666分了.
- 8.删除一个文档
curl -XDELETE 'http://192.168.80.123:9200/school/jsj/1'
返回:
{ "found": true, "_index": "school", "_type": "jsj", "_id": "1", "_version": 5, "result": "deleted", "_shards": { "total": 2, "successful": 1, "failed": 0 }}
再查看id为1的返回数据为:
{ "_index": "school", "_type": "jsj", "_id": "1", "found": false}
- 9.查询所有
curl -XGET 'http://192.168.80.123:9200/school/jsj/_search' -d '{ "query": { "match_all": {} } }'
返回:
{ "took": 10, //执行搜索的时间(以毫秒为单位) "timed_out": false, //是否超时 "_shards": { //搜索分片,成功和失败的分片 "total": 5, //总搜索分片 "successful": 5, //成功搜索分片 "failed": 0 //失败搜索分片 }, "hits": { "total": 2, //符合我们的搜索条件的文档总数 "max_score": 1.0, //最高分数 "hits": [{ //搜索结果的实际数组(默认为前10个文档) "_index": "school", "_type": "jsj", "_id": "2", "_score": 1.0, //是文档的分数信息,与排名相关度有关,参考各大搜索引擎的搜索结果,就容易理解。 "_source": { "subject": "math", "name": { "first": "zhang", "last": "san" }, "create_time": "2017-07-01", "score": "59" } }, { "_index": "school", "_type": "jsj", "_id": "1", "_score": 1.0, //是文档的分数信息,与排名相关度有关,参考各大搜索引擎的搜索结果,就容易理解。 "_source": { "class": "软件工程", "subject": "math", "name": { "first": "li", "last": "jie" }, "create_time": "2017-08-10", "score": "98" } }] }}
- 10.查询第一条
curl-XGET'http: //192.168.80.123: 9200/school/jsj/_search'-d'{ "query": { "match_all": { } }, "size": 1}'
返回:
{ "took": 6, "timed_out": false, "_shards": { "total": 5, "successful": 5, "failed": 0 }, "hits": { "total": 2, "max_score": 1.0, "hits": [{ "_index": "school", "_type": "jsj", "_id": "2", "_score": 1.0, "_source": { "subject": "math", "name": { "first": "zhang", "last": "san" }, "create_time": "2017-07-01", "score": "59" } }] }}
- 11.分页查询 from表示从几条开始查询, size表示查询的条数 和limit一样,其中第一条是0条
curl-XGET'http: //192.168.80.123: 9200/school/jsj/_search'-d'{ "query": { "match_all": { } }, "from": 1, "size": 10}'
返回:
{ "took": 4, "timed_out": false, "_shards": { "total": 5, "successful": 5, "failed": 0 }, "hits": { "total": 2, "max_score": 1.0, "hits": [{ "_index": "school", "_type": "jsj", "_id": "1", "_score": 1.0, "_source": { "class": "软件工程", "subject": "math", "name": { "first": "li", "last": "jie" }, "create_time": "2017-08-10", "score": "98" } }] }}
- 12.排序
先执行(不然报错,报错如下):
{“error”:{“root_cause”:[{“type”:”illegal_argument_exception”,”reason”:”Fielddata is disabled on text fields by default. Set fielddata=true
curl -XPUT 'http://192.168.80.123:9200/school/_mapping/jsj/' -d '{ "properties": { "score": { "type": "text", "fielddata": true } }}'
返回:
{"acknowledged":true}
然后:
curl-XGET'http: //192.168.80.123: 9200/school/jsj/_search'-d'{ "query": { "match_all": { } }, "sort": { "score": "desc" }}'
返回:
{ "took": 140, "timed_out": false, "_shards": { "total": 5, "successful": 5, "failed": 0 }, "hits": { "total": 2, "max_score": null, "hits": [{ "_index": "school", "_type": "jsj", "_id": "1", "_score": null, "_source": { "class": "软件工程", "subject": "math", "name": { "first": "li", "last": "jie" }, "create_time": "2017-08-10", "score": "98" }, "sort": ["98"] }, { "_index": "school", "_type": "jsj", "_id": "2", "_score": null, "_source": { "subject": "math", "name": { "first": "zhang", "last": "san" }, "create_time": "2017-07-01", "score": "59" }, "sort": ["59"] }] }}
- 13.返回部分制字段
curl-XGET'http: //192.168.80.123: 9200/school/jsj/_search'-d'{ "query": { "match_all": { } }, "_source": ["subject", "name.last"]}'
返回:
{ "took": 8, "timed_out": false, "_shards": { "total": 5, "successful": 5, "failed": 0 }, "hits": { "total": 2, "max_score": 1.0, "hits": [{ "_index": "school", "_type": "jsj", "_id": "2", "_score": 1.0, "_source": { "subject": "math", "name": { "last": "san" } } }, { "_index": "school", "_type": "jsj", "_id": "1", "_score": 1.0, "_source": { "subject": "math", "name": { "last": "jie" } } }] }}
- 14.匹配查询
curl-XGET'http: //192.168.80.123: 9200/school/jsj/_search'-d'{ "query": { "match": { "name.last": "san" } }, "_source": ["subject", "name.first"]}'
返回:
{ "took": 6, "timed_out": false, "_shards": { "total": 5, "successful": 5, "failed": 0 }, "hits": { "total": 1, "max_score": 0.2876821, "hits": [{ "_index": "school", "_type": "jsj", "_id": "2", "_score": 0.2876821, "_source": { "subject": "math", "name": { "first": "zhang" } } }] }}
- 15.同时包含查询match_phrase
curl -XGET 'http://192.168.80.123:9200/school/jsj/_search' -d '{ "query": { "match_phrase": { "name.last": "san" } }}'
- 16.bool查询must 需要全部满足
curl -XGET 'http://192.168.80.123:9200/school/jsj/_search' -d '{ "query": { "bool": { "must": [ { "match": { "subject": "math" } }, { "match": { "name.last": "jie" } } ] } }}'
- 17.bool查询should 只要满足一个就行
curl -XGET 'http://192.168.80.123:9200/school/jsj/_search' -d '{ "query": { "bool": { "should": [ { "match": { "subject": "aaa" } }, { "match": { "name.last": "jie" } } ] } }}'
- 18.bool查询must_not 全部都不满足
curl -XGET 'http://192.168.80.123:9200/school/jsj/_search' -d '{ "query": { "bool": { "must_not": [ { "match": { "subject": "math" } }, { "match": { "name.last": "jie" } } ] } }}'
- 19.bool查询must, should, must_not
curl -XGET 'http://192.168.80.123:9200/school/jsj/_search' -d '{ "query": { "bool": { "must": [ { "match": { "subject": "math" } } ], "must_not": [ { "match": { "name.last": "jie" } } ] } }}'
- 20.过滤查询(它不会去计算分值,因此效率也就更高一些) 这里score是string类型 从左到右做比较 非数字大小
curl -XGET 'http://192.168.80.123:9200/school/jsj/_search' -d '{ "query": { "bool": { "must": { "match_all": {} }, "filter": { "range": { "score": { "gt": "8", "lt": "99999" } } } } }}'
- 21.聚合查询
首先:
curl -XPUT 'http://192.168.80.123:9200/school/_mapping/jsj/' -d '{ "properties": { "name.last": { "type": "text", "fielddata": true } }}'
然后:
curl -XGET 'http://192.168.80.123:9200/school/jsj/_search' -d '{ "size": 0, "aggs": { "group_by_state": { "terms": { "field": "name.last" } } }}'
阅读全文
0 0
- Elasticsearch的简单使用案例
- 一些国外优秀的elasticsearch使用案例
- 一些国外优秀的elasticsearch使用案例
- 一些国外优秀的elasticsearch使用案例
- ElasticSearch--AdMaster使用案例
- elasticsearch的综合测试案例
- Applet的简单使用案例
- hashmap使用的简单案例
- libevent使用的简单案例
- uedit的简单使用案例
- dom4j的简单使用案例
- 过滤器的简单使用案例
- ElasticSearch学习5_一些国外优秀的elasticsearch使用案例
- Elasticsearch简单使用
- ElasticSearch简单使用
- elasticsearch简单使用
- cvs的使用最简单案例
- 简单自定义标签的使用案例
- Redis通用命令
- centOS安装Nodejs
- 选择排序原理(java实现)
- php 反序列化报错及解决
- 洛谷 1346 电车
- Elasticsearch的简单使用案例
- 博客新皮肤上线啦!
- PIL在windows和Ubuntu下的安装--pip安装方式
- ajax 重复提交
- shellcode启动cmd加退出进程和写保护
- 常见的类型转换
- 自建邮件服务器,你玩过吗?
- 多校 HDU6097 Mindis (几何)
- 用jquery实现图片的懒加载