tips1:ES中有结果转换器功能,这是一个相当强大的功能,我感觉在相当一部分配合复合查询起到了python解析文本的作用,这里写一个用例,提取出其中的关键数据:
var a= new Array();
var i=0;
records = root.hits.hits;
for (o in records){
var b= new Object()
try{
b.a_Id=records[o]["_source"]["a_Id"]
b.b_Id=records[o]["_source"]["b_Id"]
b.c_Type=records[o]["_source"]["c_Type"]
a[i++]=b
}catch(e){}
}
return a //records
tips2: 聚合查询想知道结果中某一项数据共有哪些类型,切有多少条这样的数据:
"aggs": {
"distinct": {
"terms": {
"field": "field"
}
}
}
tips3:达到group by 然后sum的效果
"aggs": {
"_result": {
"terms": {
"field": "capital_id",
"size": 100
},
"aggs": {
"result": {
"sum": {
"field": "amount"
}
}
}
}
}
tips4:count(distinct *) 查询某个字段的不同的个数
"aggs": {
"distinct": {
"cardinality": {
"field": "order_id"
}
}
}
tips5: es中有一个延迟刷新的策略,这个可以根据一下方法设置
http://ip:port/dh/_settings/
put请求
{"refresh_interval":"1s"}
tips6: es增加字段
PUT /my_index/_mapping/my_type
{
"my_type": {
"properties": {
"english_title": {
"type": "string",
"analyzer": "english"
}
}
}
}
tips7:es逆序
"sort": [
{
"optTime": {
"order": "desc"
}
}
],