-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathmSearch.js
53 lines (52 loc) · 1.46 KB
/
mSearch.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
esClient.msearch({
body: [
{ index: 'blogs', type: 'blog' }, // first query
{
size: 6,
query : { match: { air: true }},
sort : [ { createdAt : { order : 'desc' }}],
_source: ['title','url',],
},
{ index: 'blogs', type: 'blog' }, // second query, can search with different index too
{
size: 8,
query : {bool:{must:[{match:{type:'introduction'}},{match:{air:true}}]}},
sort : [ { createdAt : { order : 'desc' }}],
_source: ['title','url'],
},
{ index: 'blogs', type: 'blog' }, // third query
{
size: 12,
query : {bool:{must:[{match:{type:'announcement'}},{match:{air:true}}]}},
sort : [ { createdAt : { order : 'desc' }}],
_source: ['title','url'],
},
]
}).then(result => {
cb(null, result);
}).catch(err => {
cb(err, null);
});
//{ responses: [
// {
// took : 2,
// timed_out : false,
// _shards : [Object],
// hits : [Object],
// status : 200
// },
// {
// took : 0,
// timed_out : false,
// _shards : [Object],
// hits : [Object],
// status: 200
// },
// {
// took : 1,
// timed_out : false,
// _shards : [Object],
// hits : [Object],
// status : 200
// }
//] }