Die grundlegende Operation von Elasticsearch

1. Grundlegende Konzepte

Elasticsearch ist auch eine auf Lucene basierende Volltextsuchbibliothek, deren Kern darin besteht, Daten zu speichern.Viele Konzepte ähneln MySQL.

Vergleichsbeziehung:

Index (Indizes) ---------------------Datenbanken Datenbanktyp
  (Typ) ------------------ - -------Tabellendatentabelle [7.x veraltet]
    Dokument (Dokument)----------------------Zeile Zeilenfeld
        (Feld)- - -----------------------Spalte Spalten

Beachten Sie, dass Elasticsearch selbst verteilt ist, sodass Elasticsearch standardmäßig Fragmentierungs- und Kopiervorgänge an Ihren Daten durchführt, selbst wenn Sie nur einen Knoten haben.Wenn Sie dem Cluster neue Daten hinzufügen, befinden sich die Daten auch im neu hinzugefügten Knoten sind ausgeglichen.

2. Indexoperation

1. Abfrageindex

Überprüfen Sie, welche Indexbibliotheken in es verfügbar sind (ähnlich wie bei mysql database) : GET /_cat/indices?v

# es默认对中文的分词 支持不友好,它认为一个字代表一个词
# 查看es的分词方式
GET _analyze
{
  "text": ["我是中国人"]
}
{
  "text": "我爱你你爱我"
}

# 给es配置中文分词器:ik分词器
# 指定ik分词器分词:ik_smart粗粒度分词
#                   ik_max_word细粒度分词
GET _analyze
{
  "text": "咖喱人,鸡你太美,你这个老六",
  "analyzer": "ik_max_word"
}

Es gibt standardmäßig einen Index namens .kibana und .kibana_task_manager in es

Feldname Bedeutung
Gesundheit

grün (Cluster komplett)

gelb (Einzelpunkt normal, Cluster unvollständig)

rot (einzelner Punkt ist nicht normal)

Status Kann es verwendet werden
Index Indexname
uuid Index einheitliche Nummer
bei wie viele masternodes
rep Wie viele Slave-Knoten
docs.count Anzahl Dokumente
docs.gelöscht Wie viele Dokumente wurden gelöscht
store.size Gesamtabdruck
pri.store.size Der Master-Knoten berücksichtigt

2. Erstellen Sie einen Index

PUT /indexname

Optionale Parameter: Geben Sie den Shard und die Kopie an, der Standard-Shard ist 3 und die Kopie 2.

PUT /liush
{
  "settings": {
    "number_of_shards": 2,
    "number_of_replicas": 3
  }
}

3. Zeigen Sie die spezifischen Informationen des Index an

GET /indexname

4. Löschen Sie den Index

DELETE /index Bibliotheksname

3. Mapping-Konfiguration (_mapping)

Mit dem Index besteht der nächste Schritt darin, Daten hinzuzufügen. Die Zuordnung muss jedoch definiert werden, bevor Daten hinzugefügt werden können.

Was ist eine Kartierung?

Mapping ist der Prozess der Definition eines Dokuments, welche Felder das Dokument enthält, ob diese Felder gespeichert, indiziert, wortsegmentiert usw. sind.

Erst wenn die Konfiguration klar ist, hilft uns Elasticsearch beim Erstellen der Indexbibliothek (nicht unbedingt).

1. Erstellen Sie ein Zuordnungsfeld

PUT /index Bibliotheksname/_mapping
{   "properties": {     "field name": {       "type": "type",       "index": true,       "store": true,       "analyzer": "word Breaker"     }   } }








Feldname: Ähnlich wie beim Spaltennamen können viele Felder unter Eigenschaften angegeben werden.

Jedes Feld kann viele Attribute haben. Zum Beispiel:

  • type:类型,String(Textschlüsselwort) Numeric(Long Integer Float Double) date boolean

  • index: ob indexiert werden soll, die Voreinstellung ist true

  • store: Ob gespeichert werden soll, der Standardwert ist false, selbst wenn es false ist, wird es in _source gespeichert, wenn es true ist, wird eine zusätzliche Kopie gespeichert

  • Analysator: Worttrennung, verwenden Sie hier ik Worttrennung: oderik_max_wordik_smart

PUT /liush
{
  "settings": {
    "number_of_shards": 2,
    "number_of_replicas": 3
  }
}

POST /liush/_mapping
{
  "properties": {
    "title": {
      "type": "text",
      "analyzer": "ik_max_word"
    },
    "images":{
      "type": "keyword",
      "index": "false"
    },
    "price": {
      "type": "long"
    }
  }
}

2. Zeigen Sie die Zuordnungsbeziehung an

Syntax: GET /index Bibliotheksname/_mapping

4. Neues Dokument (Dokument)

Mit Indizes, Typen und Zuordnungen können Sie Dokumente hinzufügen, löschen, ändern und abfragen.

1.  Grundlegendes Gameplay

Wenn wir die ID angeben möchten, wenn wir sie selbst hinzufügen, können wir Folgendes tun:

POST /index Bibliotheksname/_doc/id Wert
{     ... }

POST /liush/_doc/1
{
  "title": "小米手机",
  "images": "http://xiaomi.com/xiaomi.igp",
  "price":2999
}

GET /liush/_search

2. Intelligentes Urteilsvermögen

Tatsächlich ist Elasticsearch sehr intelligent: Sie müssen keine Zuordnungen für die Indexbibliothek festlegen, es kann auch den Typ anhand der von Ihnen eingegebenen Daten beurteilen und Datenzuordnungen dynamisch hinzufügen.

POST /liush/_doc/2
{
    "title":"小米手机",
    "images":"http://image.jd.com/12479122.jpg",
    "price":2899,
    "stock": 200,
    "saleable":true,
    "attr": {
        "category": "手机",
        "brand": "小米"
    }
}

Wir haben zusätzlich mehrere Felder des Lagerbestands hinzugefügt, ob sich das verkaufsfähige Produkt in den Regalen befindet, und andere attr-Attribute. 

stock, saleable und attr wurden alle erfolgreich zugeordnet.

Wenn es sich um Daten vom Typ Zeichenfolge handelt, werden zwei Typen hinzugefügt: Text + Schlüsselwort. Wie im obigen Beispiel Kategorie und Marke

5. Daten löschen

Das Löschen verwendet die DELETE-Anforderung. Ebenso muss es gemäß der ID gelöscht werden:

Syntax: DELETE /index Bibliotheksname/_doc/id Wert
Beispiel: DELETE /liush/_doc/2

6. Dokumente aktualisieren

Syntax:
POST /index Bibliotheksname/_update/id Wert
{     doc:{         "attribute":"value"     } }



POST /liush/_update/1
{
  "doc": {
    "title":"aaa"
  }
}

Ich denke du magst

Origin blog.csdn.net/qq_45037155/article/details/129696147
Empfohlen
Rangfolge