结构
Elasticsearch(以下简称为ES)为非关系型数据库,为了便于理解,可以把它与关系型数据库结构做以下映射
通信
使用RESTful API,通过9200端口与ES通信,支持多种语言,甚至可以使用curl
curl语法格式如下:
curl -X<VERB> '<PROTOCOL>://<HOST>/<PATH>?<QUERY_STRING>' -d '<BODY>'
搜索
简单搜索
GET /megacorp/employee/_search?q=last_name:Smith
DSL搜索
GET /megacorp/employee/_search
{
"query": {
"match": {
"last_name": "Smith"
}
}
}
过滤搜索
GET /megacorp/employee/_search
{
"query": {
"filtered": {
"query": {
"match": {
"last_name": "smith"
}
},
"filter": {
"range": {
"age": {
"gt": 10
}
}
}
}
}
}
全文搜索
GET /megacorp/employee/_search
{
"query": {
"match": {
"about": "rock climbing"
}
}
}
短语搜索
GET /megacorp/employee/_search
{
"query": {
"match_phrase": {
"about": "rock climbing"
}
}
}
高亮搜索结果
GET /megacorp/employee/_search
{
"query": {
"match_phrase": {
"about": "rock climbing"
}
},
"highlight": {
"fields": {
"about":{}
}
}
}
聚合分析
GET /megacorp/employee/_search
{
"query": {
"match": {
"last_name": "smith"
}
},
"aggs": {
"all_interests":{
"terms":{"field":"interests"}
}
}
}
聚合分析之分级汇总
统计每种兴趣下职员的平均年龄
GET /megacorp/employee/_search
{
"aggs": {
"all_interests":{
"terms":{"field":"interests"},
"aggs":{
"ava_age":{
"avg":{"field":"age"}
}
}
}
}
}
© 走过岁月...... | Powered by LOFTER