プログラミング学習サイト

プログラミングの学習を開始される方を対象としたプログラミング入門サイトです。

Opensearchの用語集

Opensearchの用語集

Opensearchでは扱う言葉が紛らわしいという性質があり、 「MySQLなどのほかのデータベースを知っているし大体同じだろ」と考えて用語の理解をおろそかにすると逆に理解に苦しむことがあります。 他のデータベースシステムを知っていたとしても、Opensearchの用語は押さえておきましょう。

Document

  • Opensearchでは格納するデータの一行をdocumentと呼んでいます。
  • RDSでの「行」に該当する言葉です。
  • Opensearchでは、辞書形式でデータを格納していきます。
{
  "id": 1,
  "name": "こころ",
  "body": "私はその人を常に先生と呼んでいた。だからここでもただ先生と書くだけで本名は打ち明けない。これは世間を憚かる遠慮というよりも、その方が私にとって自然だからである。私はその人の記憶を呼び起すごとに、すぐ「先生」といいたくなる。筆を執っても心持は同じ事である。よそよそしい頭文字などはとても使う気にならない。",
  "author": "夏目漱石"
}

from https://qiita.com/hkano/items/a097d6c2fa103752dce9

Field

  • Opensearchでは、Documentを構成する、keyとvalueのペアのことをFieldと呼んでいます。
  "author": "夏目漱石"

Index

  • Opensearchでは、一つのテーブルのことをIndexと呼んでいます。
  • 一つのIndexには、大量のDocumentが格納されます。
[
      {
        "_index": "books",
        "_type": "_doc",
        "_id": "2",
        "_score": 1.0708848,
        "_source": {
          "id": 2,
          "name": "羅生門",
          "body": "ある日の暮方の事である。一人の下人が、羅生門の下で雨やみを待っていた。広い門の下には、この男のほかに誰もいない。ただ、所々丹塗の剥げた、大きな円柱に、蟋蟀が一匹とまっている。羅生門が、朱雀大路にある以上は、この男のほかにも、雨やみをする市女笠や揉烏帽子が、もう二三人はありそうなものである。それが、この男のほかには誰もいない。",
          "author": "芥川龍之介"
        }
      },
      {
        "_index": "books",
        "_type": "_doc",
        "_id": "4",
        "_score": 0.9264894,
        "_source": {
          "id": 4,
          "name": "坊っちゃん",
          "body": "親譲りの無鉄砲で小供の時から損ばかりしている。小学校に居る時分学校の二階から飛び降りて一週間ほど腰を抜かした事がある。なぜそんな無闇をしたと聞く人があるかも知れぬ。別段深い理由でもない。新築の二階から首を出していたら、同級生の一人が冗談に、いくら威張っても、そこから飛び降りる事は出来まい。弱虫やーい。と囃したからである。小使に負ぶさって帰って来た時、おやじが大きな眼をして二階ぐらいから飛び降りて腰を抜かす奴があるかと云ったから、この次は抜かさずに飛んで見せますと答えた。",
          "author": "夏目漱石"
        }
      },
...
]

mapping

Indexの定義。 どのようにデータを格納するかを定義することができます。

Indexのmappingは必ずしも必要なものではなく、データ定義がなくとも「データの追加処理」をすればIndexの作成から自動で対応してくれます。 しかし、例えばyearの代わりにstringを使用してほしいことを明示したい時などは、mappingを行い、データ型を明示する必要があります。

明示的なマッピングではPUTリクエストをindexに投げることで、設定の変更が可能です。

PUT sample-index1
{
  "mappings": {
    "properties": {
      "year":    { "type" : "text" },
      "age":     { "type" : "integer" },
      "director":{ "type" : "text" }
    }
  }
}

上記は、OpenSearchで新しいインデックスを作成するためのリクエストです。 これにより、"sample-index1"という名前の新しいインデックスが作成され、指定されたマッピングが適用されます。このマッピングでは、"year"フィールドはテキスト型、"age"フィールドは整数型、"director"フィールドもテキスト型として定義されています。

shard(シャード)

Opensearchで保存されるデータの場所を、shard(シャード)と呼ぶ

  • primary shard : Opensearchで保存されたデータが真っ先に格納される場所。
  • replica shard : primary shardへ保存された後、次に保存される場所。一つのprimary shardは複数のレプリカを持つことができ、primary shardに何かしらの障害が発生した時に、replica shardprimary shardへ昇格することができる。

node(ノード)

opensearchを実行しているインスタンスのこと。

page:https://minegishirei.hatenablog.com/entry/2024/05/26/082948