extern crate elastic;
extern crate env_logger;
extern crate futures;
extern crate futures_cpupool;
#[macro_use]
extern crate serde_json;
extern crate tokio_core;
use std::error::Error;
use futures::Future;
use futures_cpupool::CpuPool;
use tokio_core::reactor::Core;
use serde_json::Value;
use elastic::prelude::*;
fn run() -> Result<(), Box<Error>> {
let mut core = Core::new()?;
let pool = CpuPool::new(4);
let client = AsyncClientBuilder::new()
.serde_pool(pool)
.build(&core.handle())?;
let res_future = client
.search::<Value>()
.index("_all")
.body(json!({
"query": {
"query_string": {
"query": "*"
}
}
}))
.send();
let search_future = res_future.and_then(|res| {
for hit in res.hits() {
println!("{:?}", hit);
}
Ok(())
});
core.run(search_future)?;
Ok(())
}
fn main() {
env_logger::init().unwrap();
run().unwrap();
}