#[macro_use]
extern crate serde_json;
use elasticsearch::{
auth::Credentials,
http::transport::{SingleNodeConnectionPool, Transport, TransportBuilder},
params::Refresh,
Elasticsearch, Error, IndexParts, SearchParts,
};
use futures::executor::block_on;
use serde_json::Value;
use url::Url;
#[tokio::main]
async fn main() -> Result<(), Error> {
let credentials = Credentials::Basic("<username>".into(), "<password>".into());
let u = Url::parse("http://localhost:9200")?;
let conn_pool = SingleNodeConnectionPool::new(u);
let transport = TransportBuilder::new(conn_pool).auth(credentials).build()?;
let client = Elasticsearch::new(transport);
let response = client
.search(SearchParts::Index(&["tweets"]))
.from(0)
.size(10)
.body(json!({
"query": {
"match": {
"message": "Elasticsearch rust"
}
}
}))
.send()
.await?;
let response_body = response.read_body::<Value>().await?;
println!("{:?}", response_body);
Ok(())
}
This looks correct, except that
let response_body = response.read_body::<Value>().await?;
is now
let response_body = response.json::<Value>().await?;
This topic was automatically closed 90 days after the last reply. New replies are no longer allowed.