Rustで簡単ElasticsearchClient
皆さんこんばんは。私にとって一日の境界は午前9時なので、まだ19日目のはずです。
はい。すみません。遅くなりましたが、これはRust Adventcalendarの19日目です。
Rustは完全に趣味でやっている初心者なのですが、せっかく触っているなら
仕事でも使いたくなりますよね。
私はElasticsearchを仕事でよく触るので、今回はRustのElasticsearchClientを
紹介していきます。
今回使うライブラリは
elastic-rs
です。
まずはクライアントオブジェクトを作ります。この辺は大体同じですね。
let client = SyncClientBuilder::new().build()?;
検索をしたいときには、elasticsearchのqueryをそのまま使えます。
let res = client .search::<Value>() .index("_all") .body(json!({ "query": { "query_string": { "query": "*" } } })) .send()?;
また、documentを登録したいときは、structを定義してMapping・投入ができます。
struct docType { id: i32, title: String, timestamp: Date<DefaultDateMapping>, }; let document = docType { id: 1, title: String::from("adventcalendar"), timestamp: Date::now(), }; client.document_put_mapping::<docType>(Index::from("sample")).send()?; client.document_index(sample_index(), id(doc.id), doc).send()?;
こんな感じで使えます。
まだver0.20.8なのですが、やりたいことは大体できます。すごい便利です。
これを使えばちょっとしたElasticsearchClient作れますね。
それでは、今回はこの辺で。