(5) ElasticSearch-Datentypen und Dokument-CRUD-Operationen

1. ES-Datentyp

Offizielle Dokumentadresse: https://www.elastic.co/guide/en/elasticsearch/reference/current/mapping-types.html#_complex_datatypes

Kerndatentypen (Kerndatentypen):

Der Kerndatentyp ist der grundlegendste und am häufigsten verwendete Datentyp von Elasticsearch, der zum Speichern der meisten Daten verwendet wird. Zu diesen Kerndatentypen gehören:

  • Text (Text): Wird zum Speichern von Langtextdaten für die Volltextsuche und -analyse verwendet.
  • Schlüsselwort: Wird zum Speichern exakter Werte sowie zum Filtern, Aggregieren und exakten Abgleichen verwendet.
  • Numerisch: Wird zum Speichern numerischer Daten verwendet, einschließlich Ganzzahlen, Gleitkommazahlen usw.
  • Datum (Datum): Wird zum Speichern von Datums- und Uhrzeitdaten verwendet. Da Json keinen Datumstyp hat, beurteilt es, ob es sich um einen Datumstyp handelt, indem es ermittelt, ob die Zeichenfolge dem durch format definierten Format entspricht.
  • Boolean (Boolean): Wird zum Speichern boolescher Werte verwendet.
  • Binär (binär): Wird zum Speichern von Binärdaten verwendet.
  • Bereich: Der Bereichstyp wird zum Speichern von numerischen Bereichen, Datumsbereichen, IP-Bereichen usw. verwendet. Es ermöglicht Ihnen, Bereichsabfragen und Bereichsaggregationsvorgänge für Felder durchzuführen.

Komplexe Datentypen:

Komplexe Datentypen ermöglichen die Speicherung strukturierter Daten wie Objekte, Arrays und verschachtelte Felder. Zu diesen komplexen Datentypen gehören:

  • Objekt: Wird zum Speichern von Daten verschachtelter Objekte oder komplexer Strukturen verwendet.
  • Array (Array): Eine Liste zum Speichern mehrerer Werte. Verwenden Sie einfach [], um es zu definieren. Alle Werte im Array müssen vom gleichen Datentyp sein. Arrays mit gemischten Datentypen werden nicht unterstützt:

Verwenden Sie komplexe Datentypen, um flexiblere und komplexere Datenstrukturen zu erstellen, die verschachtelte Abfragen und Aggregationsvorgänge unterstützen.

Spezialisierte Datentypen:

Spezialisierte Datentypen sind spezielle Datentypen, die von Elasticsearch bereitgestellt werden, um spezifische Domänenanforderungen zu erfüllen. Zu diesen speziellen Datentypen gehören:

  • GeoPoint (geografischer Punkt): Wird zum Speichern geografischer Koordinatenpunkte, zur Unterstützung der Geodatensuche und Entfernungsberechnung verwendet.
  • GeoShape (geografische Form): Wird zum Speichern komplexer geografischer Formdaten wie Polygone, Linien und Punkte verwendet.
  • IP (IP-Adresse): Wird zum Speichern von IP-Adressen verwendet und unterstützt Abfrage- und Aggregationsvorgänge für IP-Adressbereiche. Im Wesentlichen ein langes Feld

Spezielle Datentypen ermöglichen Elasticsearch eine bessere Verarbeitung von Daten im Zusammenhang mit Geolokalisierung und Netzwerkadressen

2. ES-Dokument-CRUD-Vorgang

neues Dokument

1) Neue Möglichkeit zur Angabe der ID:

PUT /my_index/_doc/1

{
    
    
  "title": "Elasticsearch",
  "content": "Elasticsearch is a distributed, RESTful search and analytics engine."
}

2) Ohne Angabe der ID hinzufügen:

PUT /my_index/_doc

{
    
    
  "title": "Elasticsearch",
  "content": "Elasticsearch is a distributed, RESTful search and analytics engine."
}

3) Die Methode zur Angabe der ID wird hinzugefügt, um versehentliche Änderungen aufgrund derselben ID zu verhindern, und der Operationstyp kann angegeben werden:

PUT /my_index/_doc/1?op_type=create

{
    
    
  "title": "Elasticsearch",
  "content": "Elasticsearch is a distributed, RESTful search and analytics engine."
}

4) Aktivieren Sie die automatische Indexerstellung:
Überprüfen Sie den Status des Schalters auto_create_index:

GET /_cluster/settings

Fügen Sie hier eine Bildbeschreibung ein
Wie in der Abbildung oben gezeigt, gibt es kein Feld „auto_create_index“ oder „false“ bedeutet, dass es nicht aktiviert ist. Aktivieren Sie die
automatische Indexerstellung:

PUT _cluster/settings

{
    
    
 "persistent": {
    
    
 "action.auto_create_index": "true"
 }
}

Nachdem die automatische Indexerstellung aktiviert wurde, stimmt das Datenformat automatisch mit der Zuordnung überein.

Dokument ansehen

1) Nach ID anzeigen

GET /my_index/_doc/1

2) Mehrere anzeigen

POST /my_index/_doc/mget

{
    
    
 "ids" : ["1", "2"]
}

Dokument ändern

1) Dokumentdaten aktualisieren

POST /my_index/_doc/1/_update

{
    
    
  "doc": {
    
    
    "content": "Elasticsearch is a distributed, RESTful search and analytics platform."
  }
}

2) Fügen Sie ein Feld zum Feld _source hinzu

POST my_index/_update/1

{
    
    
 "script": "ctx._source.lable = es"
}

3) Löschen Sie im Feld _source ein Feld

POST my_index/_update/1

{
    
    
 "script": "ctx._source.remove(\"lable \")"
}

4) Aktualisieren Sie die Felder des angegebenen Dokuments gemäß den Bedingungsparametern

upsert Wenn das angegebene Dokument nicht vorhanden ist, wird der im Upsert-Parameter enthaltene Inhalt als neues Dokument in den Index eingefügt. Wenn das angegebene Dokument vorhanden ist, führt die ElasticSearch-Engine die angegebene Aktualisierungslogik aus.

POST my_index/_update/1

{
    
    
	 "script": {
    
    
		 "source": "ctx._source.lable+= params.lable",
		 "params": {
    
    
		 "lable": "good"
		 }
	 },
	 "upsert": {
    
    
		 "lable": "just so so"
		 }
}

Dokument löschen

DELETE /my_index/_doc/1

Ich denke du magst

Origin blog.csdn.net/csdn570566705/article/details/131204208
Empfohlen
Rangfolge