ES 索引创建及查询

ES 创建索引

PUT /xxxx_index
{
  "settings": {
    "number_of_shards": 1,		// 是数据分片数,默认为5,具体根据自己实际情况设置。
    "number_of_replicas": "0" 	// 是数据备份数,具体根据自己实际情况设置。
  },
  "mappings": {
    "properties": {
      "xxx": {
        "type": "keyword" 
      },
      "xxx": {
        "type": "ip"  // IP类型
      },
      "xxx": {  
        "properties": {    // 对象类型
          "xxx": {
            "type": "keyword"
          },
          "xxx": {
            "type": "integer"    
          }
        }
      },
      "xxx": {
        "type": "long"  	// long类型
      },
      "xxx": {
        "type": "integer"  	// integer类型
      },
      "xxx": {         // 对象名
        "type": "nested",  	// 对象数组类型
        "properties": {
          "xxx": {		// 属性1
            "type": "keyword" 
          },
          "xxx": {		// 属性2
            "type": "keyword" 
          }
        }
      },
      "xxx": {
        "type": "date", 		// 时间类型
        "format": "yyyy-MM-dd HH:mm:ss" 
      }
    }
  }
}

定义查询体

let queryObj = {
    "bool": {
        "must": []
    }
};

对象属性查询

let str_xxx = [];
let must_item = {
    "terms": {
        "xxx.a": str_xxx				//键:值 对象名.属性名:字符串数组
    }
}
queryObj.bool.must.push(must_item);

对象数组查询

let must_item = {
   "nested": {
        "path": "xxx",			// xxx 对象名
        "query": {
            "term": {
                "xxx.xxx": {			// 对象名.属性名
                    "value": aaa				// 要匹配的值 如果是多个用terms,如上例。
                }
            }
        }
    }
}
queryObj.bool.must.push(must_item);

bool嵌套查询

或查询
let must_item = {
    "bool": {
        "should": [
            {
                "term": {
                    "xxxa": {
                        "value": xa
                    }
                }
            },
            {
                "term": {
                    "xxxb": {
                        "value": xa
                    }
                }
            }
        ]
    }
}
queryObj.bool.must.push(must_item);

对象属性聚合

let queryObj = {
   "size": 0,
   "aggs": {
       "pv1": {
           "terms": {
               "size": init_length,  //自定义返回多少条数据,不设置默认是10条
               "field": "xxx.a"		//对象名:属性名
           }
       }
   }
}

对象数组属性聚合

{
  "size": 0,
  "aggs": {
    "pv1": {
      "nested": {
        "path": "xxx"
      },
      "aggs": {
        "pv2": {
          "terms": {
            "field": "xxx.xxx",
            "size": 10,
            "order": {
              "_term": "asc"
            }
          }
        }
      }
    }
  }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值