Elasticsearch-ingest-node

提供:Dev Guides
移動先:案内検索

Elasticsearch-IngestNode

index.blocks.read_only 1 true/false Set to true to make the index and index metadata read only, false to allow writes and metadata changes.

インデックスを作成する前にドキュメントを変換する必要がある場合があります。 たとえば、ドキュメントからフィールドを削除するか、フィールドの名前を変更してからインデックスを作成します。 これは、取り込みノードによって処理されます。

クラスター内のすべてのノードには取り込み機能がありますが、特定のノードのみが処理するようにカスタマイズすることもできます。

関与するステップ

取り込みノードの動作に関係する2つのステップがあります-

  • パイプラインを作成する
  • ドキュメントを作成する

パイプラインを作成する

以下に示すように、最初にプロセッサを含むパイプラインを作成し、次にパイプラインを実行します-

PUT _ingest/pipeline/int-converter
{
   "description": "converts the content of the seq field to an integer",
   "processors" : [
      {
         "convert" : {
            "field" : "seq",
            "type": "integer"
         }
      }
   ]
}

上記のコードを実行すると、次の結果が得られます-

{
   "acknowledged" : true
}

ドキュメントを作成する

次に、パイプラインコンバーターを使用してドキュメントを作成します。

PUT/logs/_doc/1?pipeline=int-converter
{
   "seq":"21",
   "name":"finddevguides",
   "Addrs":"Hyderabad"
}

上記のコードを実行すると、次のように応答が得られます-

{
   "_index" : "logs",
   "_type" : "_doc",
   "_id" : "1",
   "_version" : 1,
   "result" : "created",
   "_shards" : {
      "total" : 2,
      "successful" : 1,
      "failed" : 0
   },
   "_seq_no" : 0,
   "_primary_term" : 1
}

次に、以下に示すようにGETコマンドを使用して、上記で作成したドキュメントを検索します-

GET/logs/_doc/1

上記のコードを実行すると、次の結果が得られます-

{
   "_index" : "logs",
   "_type" : "_doc",
   "_id" : "1",
   "_version" : 1,
   "_seq_no" : 0,
   "_primary_term" : 1,
   "found" : true,
   "_source" : {
      "Addrs" : "Hyderabad",
      "name" : "finddevguides",
      "seq" : 21
   }
}

上記のように、21が整数になっていることがわかります。

パイプラインなし

次に、パイプラインを使用せずにドキュメントを作成します。

PUT/logs/_doc/2
{
   "seq":"11",
   "name":"Tutorix",
   "Addrs":"Secunderabad"
}
GET/logs/_doc/2

上記のコードを実行すると、次の結果が得られます-

{
   "_index" : "logs",
   "_type" : "_doc",
   "_id" : "2",
   "_version" : 1,
   "_seq_no" : 1,
   "_primary_term" : 1,
   "found" : true,
   "_source" : {
      "seq" : "11",
      "name" : "Tutorix",
      "Addrs" : "Secunderabad"
   }
}

上記のように、11はパイプラインが使用されていない文字列であることがわかります。