Elasticsearch基本使用
定义
一个 Elasticsearch 集群可以 包含多个 索引 ,相应的每个索引可以包含多个 类型 。 这些不同的类型存储着多个 文档 ,每个文档又有 多个 属性 。
创建一个索引
http://192.168.1.10:9200/test/student/1 PUT
{ "name" : "liutao", "age" : 12, "gender" : "男", "hobby":["足球","游泳"] }
http://192.168.1.10:9200/test/student/2 PUT
{ "name" : "meimei", "age" : 11, "gender" : "女", "hobby":["舞蹈","游泳"] }
查询单个
http://192.168.1.10:9200/test/student/1
{ "_index": "test", "_type": "student", "_id": "1", "_version": 3, "_seq_no": 2, "_primary_term": 1, "found": true, "_source": { "name": "liutao", "age": 12, "gender": "男", "hobby": [ "足球", "游泳" ] } }
查询全部
http://192.168.1.10:9200/test/student/_search Get
结果
{ "took": 303, "timed_out": false, "_shards": { "total": 1, "successful": 1, "skipped": 0, "failed": 0 }, "hits": { "total": { "value": 2, "relation": "eq" }, "max_score": 1.0, "hits": [ { "_index": "test", "_type": "student", "_id": "1", "_score": 1.0, "_source": { "name": "liutao", "age": 12, "gender": "男", "hobby": [ "足球", "游泳" ] } }, { "_index": "test", "_type": "student", "_id": "2", "_score": 1.0, "_source": { "name": "meimei", "age": 11, "gender": "女", "hobby": [ "舞蹈", "游泳" ] } } ] } }
按条件查询
http://192.168.1.10:9200/test/student/_search?q=name:meimei Get
{ "took": 6, "timed_out": false, "_shards": { "total": 1, "successful": 1, "skipped": 0, "failed": 0 }, "hits": { "total": { "value": 1, "relation": "eq" }, "max_score": 0.6931471, "hits": [ { "_index": "test", "_type": "student", "_id": "2", "_score": 0.6931471, "_source": { "name": "meimei", "age": 11, "gender": "女", "hobby": [ "舞蹈", "游泳" ] } } ] } }
Elasticsearch 提供一个丰富灵活的查询语言叫做 查询表达式 , 它支持构建更加复杂和健壮的查询
领域特定语言 (DSL), 使用 JSON 构造了一个请求
http://192.168.1.10:9200/test/student/_search Get
{ "query" : { "match" : { "name" : "meimei" } } }
结果一样
这个请求使用 JSON 构造,并使用了一个 match
查询
更复杂搜索
过滤器 filter查询 名字是并且年龄大于12的
http://192.168.1.10:9200/test/student/_search Get
{ "query" : { "bool": { "must": { "match" : { "name" : "liutao" } }, "filter": { "range" : { "age" : { "gt" : 11 } } } } } }
全文搜索
Elasticsearch 默认按照相关性得分排序,即每个文档跟查询的匹配程度
精确匹配一系列单词或者_短语_
{ "query" : { "match_phrase" : { } } }
高亮搜索
{ "query" : { "match_phrase" : { "about" : "rock climbing" } }, "highlight": { "fields" : { "about" : {} } } }
聚合
其他
suggestions、geolocation、percolation、fuzzy 与 partial matching 等特性