Is this right way to do elasticsearch login with rust

#[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.