Bevor wir uns mit den Details des Index Managements befassen, ist es wichtig zu verstehen, was Indexierung in OpenSearch bedeutet. Indexierung ist die Methode, mit der Suchmaschinen Daten für einen schnellen Zugriff organisieren. Die daraus resultierende Struktur wird passenderweise als Index bezeichnet.
In OpenSearch ist die grundlegende Dateneinheit ein JSON-Dokument. Innerhalb eines Index identifiziert OpenSearch jedes Dokument über eine eindeutige ID.
OpenSearch bietet zwei Hauptmethoden zur Indexierung von Dokumenten:
PUT <index>/_doc/<id>
{ "title": "Ein JSON Dokument" }
Diese Methode eignet sich besonders für:
POST _bulk
{ "index": { "_index": "<index>", "_id": "<id>" } }
{ "title": "Ein JSON Dokument" }
Besonders geeignet für:
Die Dokument-ID muss maximal 512 Bytes groß sein
Bulk-Daten müssen einem speziellen Format folgen:
PUT more-movies
{
"settings": {
"number_of_shards": 6,
"number_of_replicas": 2
}
}
Wichtig: Standardmäßig wird ein Index mit einem primären Shard und einer Replik erstellt. Für spezifische Anforderungen sollten Sie den Index vor dem Hinzufügen von Dokumenten mit angepassten Einstellungen erstellen.
Beim Erstellen von Indices müssen folgende Regeln beachtet werden:
OpenSearch verwendet ein System zur Vermeidung von Konflikten bei gleichzeitigen Updates:
_seq_no und
_primary_term WertePOST movies/_update/2?if_seq_no=3&if_primary_term=1
{
"doc": {
"title": "Neuer Titel"
}
}
Für bedingte Updates basierend auf der Existenz eines Dokuments:
POST movies/_update/2
{
"doc": {
"title": "Neuer Titel"
},
"upsert": {
"title": "Standardtitel",
"genre": ["Standard"]
}
}
GET movies/_doc/1
GET _mget
{
"docs": [
{
"_index": "movies",
"_id": "1"
},
{
"_index": "movies",
"_id": "2"
}
]
}
HEAD movies/_doc/<doc-id>
POST movies/_update/1
{
"doc": {
"title": "Neuer Titel",
"genre": ["Neu"]
}
}
PUT movies/_doc/1
{
"title": "Komplett neues Dokument"
}
items-Array zurückgegeben_version-Feld protokolliert die Anzahl der
Änderungen an einem Dokument