はじめに
以前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*"
],
:
}