LoginSignup
0
0

More than 1 year has passed since last update.

Elasticsearch.Netでの万能メソッド

Posted at

はじめに

以前Elasticsearch.Netを使った基本的な操作の記述方法について書きましたが、公式ページでの使い方を具体的に実行するElasticsearch.Netでの関数を調べるのにかなり苦労していました。
先日すべてのケースに通用するであろう関数を発見したので、それを記しておきます。

前提

バージョンなど

  • Elasticsearch: ver7.17.3
  • Elasticsearch.Net: ver7.17.2

コネクション

前回も書きましたが、コネクションは以下のような感じで作成されているものとします。

using Elasticsearch.Net;

string url = "http://localhost:9200";
var settings = new ConnectionConfiguration(new Uri(url));
var client = new ElasticLowLevelClient(settings);

tl;dr; 万能関数

DoRequest関数を使います。

var response = client.DoRequest<StringResponse>(
    Elasticsearch.Net.HttpMethod.PUT,
    "/oneday/_doc/eng",
    $@"{{
      {{""morning"": ""asa""}},
      {{""afternoon"": ""gogo""}},
      {{""evening"": ""yugata""}}
    }}"
);

見ればおわかりいただけると思いますが、念のため。

  • 第1引数: Httpメソッドの種類。最後のPUTの部分を変更するだけ。
  • 第2引数: コマンド部分。
  • 第3引数: body(json)部分。

適用例

例としてindexTemplateを作成するを実行するケースを考えます。
以下のコードを実行すると、

var response = client.DoRequest<StringResponse>(
    Elasticsearch.Net.HttpMethod.PUT,
    "/_index_template/template_1",
    $@"{{
      ""index_patterns"": [""te*""],
      ""priority"": 1,
      ""template"": {{
        ""settings"": {{
            ""number_of_shards"": 2
        }}
      }}
    }}"
);

indexTemplateが作成されました。

$ curl -X GET http://localhost:9200/_index_template/template_1
{
  "index_templates": [
    {
      "name": "template_1",
      "index_template": {
        "index_patterns": [
          "te*"
        ],
:
}
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0