Skip to content

Instantly share code, notes, and snippets.

@shangmin1990
Created April 15, 2014 07:27
Show Gist options
  • Save shangmin1990/10710216 to your computer and use it in GitHub Desktop.
Save shangmin1990/10710216 to your computer and use it in GitHub Desktop.
some manipulations for Elasticsearch(how to creat a index ,and query scroll)
/**
* init
*/
(function(bus){
//var data = [];
var op1 = {};
var total = 12;
var channel = 'realtime.search';
var indexAction = {
'action':'index',
'_index':'benjamin',
'_type':'test1'
}
for(var i=1;i<=total;i++){
op1.name = 'benjamin'+i;
op1.age = 'age'+i;
op1.address = '北京'+i;
op1.gender = i%2;
op1.email = 'benjamin'+i+'@163.com';
indexAction._source = op1;
console.log(indexAction);
//send
bus.send(channel,indexAction,function(message){
console.log(message.body());
})
}
})(bus);
/**
* query | scroll scroll的方式进行查询
*/
(function(bus){
var channel = 'realtime.search';
//send a scan action first. ps单表查询
var action = {
"action": "search",
"_index": 'benjamin',
//"_indices": <indices>,
"_type": 'test1',
//"_types": <types>,
"query": {'match_all':{}},
"search_type": 'scan',
"scroll": '5m'
}
//发送消息 ,获得一个可滚动游标(理解可能不对,但是代表了scroll查询的两个阶段,这是第一个阶段)
bus.send(channel,action,function(message){
var scroll_id = message.body()._scroll_id;
//如果message的body里有_scroll_id ,说明有结果,再发送消息(这是第二阶段)
console.log(message.body()+'#########BODY');
console.log(scroll_id+'#########ID');
scroll(scroll_id);
});
var scroll = function(scroll_id){
var action_ = {'action':'scroll','_scroll_id':scroll_id,'scroll':'5m'};
bus.send(channel,action_,function(message){
console.log(JSON.stringify(message.body()));
if(message.body().hits.hits.length !== 0){
scroll(message.body()._scroll_id);
}
});
}
})(bus);
//The "breaking" condition out of a scroll is when no hits has been returned.官方文档
//res DATA example --------------------------
{"_scroll_id":"c2NhbjswOzE7dG90YWxfaGl0czoxMjs=",
"took":1,
"timed_out":false,
"_shards":{"total":5,"successful":5,"failed":0},
"hits":{"total":12,"max_score":0,
"hits":[
{"_index":"benjamin","_type":"test1","_id":"kB8u_j2lQjKzEU_Y6moaOw","_score":0,"_source":{"name":"benjamin11","age":"age11","address":"北京11","gender":1,"email":"benjamin11@163.com"}},{"_index":"benjamin","_type":"test1","_id":"zxl2YPtrToGrGKxOnmVNBA","_score":0,"_source":{"name":"benjamin1","age":"age1","address":"北京1","gender":1,"email":"benjamin1@163.com"}},{"_index":"benjamin","_type":"test1","_id":"3b_I_2pvTlWy_ClkzXY67A","_score":0,"_source":{"name":"benjamin9","age":"age9","address":"北京9","gender":1,"email":"benjamin9@163.com"}},{"_index":"benjamin","_type":"test1","_id":"_WtFy1lCTcq39rqmyceA2A","_score":0,"_source":{"name":"benjamin12","age":"age12","address":"北京12","gender":0,"email":"benjamin12@163.com"}},{"_index":"benjamin","_type":"test1","_id":"dBbcmme3S1as4dPk25PfjA","_score":0,"_source":{"name":"benjamin4","age":"age4","address":"北京4","gender":0,"email":"benjamin4@163.com"}},{"_index":"benjamin","_type":"test1","_id":"M9hAthPlSDOTbQTs1smq_A","_score":0,"_source":{"name":"benjamin3","age":"age3","address":"北京3","gender":1,"email":"benjamin3@163.com"}},{"_index":"benjamin","_type":"test1","_id":"RNuyyfrDRpGH3ls4vBJNZQ","_score":0,"_source":{"name":"benjamin2","age":"age2","address":"北京2","gender":0,"email":"benjamin2@163.com"}},{"_index":"benjamin","_type":"test1","_id":"w2hG8RBNTeKA2lvY6I4ZQQ","_score":0,"_source":{"name":"benjamin10","age":"age10","address":"北京10","gender":0,"email":"benjamin10@163.com"}},{"_index":"benjamin","_type":"test1","_id":"KpqYlA1jRaeKNS7MCMm8sA","_score":0,"_source":{"name":"benjamin6","age":"age6","address":"北京6","gender":0,"email":"benjamin6@163.com"}},{"_index":"benjamin","_type":"test1","_id":"4aczZ71mQxqSaM1NEl1ekA","_score":0,"_source":{"name":"benjamin5","age":"age5","address":"北京5","gender":1,"email":"benjamin5@163.com"}},{"_index":"benjamin","_type":"test1","_id":"FK0bb1VRQMWZeimszsYK3w","_score":0,"_source":{"name":"benjamin7","age":"age7","address":"北京7","gender":1,"email":"benjamin7@163.com"}},{"_index":"benjamin","_type":"test1","_id":"8hQ2-3gqT4u-d_a5bOqkBA","_score":0,"_source":{"name":"benjamin8","age":"age8","address":"北京8","gender":0,"email":"benjamin8@163.com"}}]},
"status":"ok"}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment