Used `elasticsearch-api` gem to get it working
`https://github.com/elastic/elasticsearch-ruby/tree/master/elasticsearch-api`
response = client.search index: 'index_name',
body: {
"_source": false,
"query": {
"nested": {
"path": "events",
"query": {
"bool": {
"must":[
{"match": {"events.team_id": "xyz"}},
{"match": {"_id": "sdlfjslasdfj"}}
]
}
},
"inner_hits": {
"size": 10,
"from": 0,
"sort": [{ "events.starts_at": "asc" }]
}
}
}
}
Just out of curiosity I've taken a look at what happens under the hood, and I've used [dtruss/strace][1] on each test.
C++
./a.out < in
Saw 6512403 lines in 8 seconds. Crunch speed: 814050
syscalls `sudo dtruss -c ./a.out < in`
CALL COUNT
__mac_syscall 1
<snip>
open 6
pread 8
mprotect 17
mmap 22
stat64 30
read_nocancel 25958
Python
./a.py < in
Read 6512402 lines in 1 seconds. LPS: 6512402
syscalls `sudo dtruss -c ./a.py < in`
CALL COUNT
__mac_syscall 1
<snip>
open 5
pread 8
mprotect 17
mmap 21
stat64 29
[1]: http://en.wikipedia.org/wiki/Strace