English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Elasticsearch Ingest节点

index.blocks.read_only1 true/false

Durch Setzen auf true wird die Indexierung und die Indexmetadaten schreibgeschützt, durch Setzen auf false wird das Schreiben und die Änderung der Metadaten erlaubt.

Manchmal müssen wir Dokumente vor der Transformation indexieren. Zum Beispiel, wir möchten ein Feld aus dem Dokument löschen oder einen Feldnamen ändern und es dann indexieren. Dies wird vom Ingest-Knoten bearbeitet.

Jeder Knoten in der Cluster hat die Extraktionsfunktion, kann aber auch angepasst werden, um nur von bestimmten Knoten bearbeitet zu werden.

Schritt

Die Arbeit des Ingest-Nodes umfasst zwei Schritte-

  • Pipeline erstellen

  • Datei erstellen

Pipeline erstellen

Erstellen Sie zunächst einen Pipeline, der Prozessoren enthält, und führen Sie ihn dann aus, wie folgt-

PUT _ingest/pipeline/int-converter
{
   "description": "wandelt den Inhalt des seq-Felds in eine Ganzzahl um",
   "processors": [
      {
         "convert": {
            "field": "seq",
            "type": "integer"
         }
      }
   ]
}

在运行上面的代码时,我们得到以下结果-

{
   "acknowledged": true
}

Datei erstellen

Nächste, wir verwenden den Pipeline-Konverter, um ein Dokument zu erstellen.

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

Nachdem wir den obigen Code ausgeführt haben, erhalten wir wie folgt

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

Nächste, wir verwenden den GET-Befehl, um das oben erstellte Dokument zu suchen, wie folgt-

GET /logs/_doc/1

在运行上面的代码时,我们得到以下结果-

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

Sie können oben sehen21in eine Ganzzahl umwandeln.

Keine Pipeline

Jetzt müssen wir keine Pipeline verwenden, um Dokumente zu erstellen.

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是一个不使用管道的字符串。