image、width = 654、height = 200


ElasticSearch

は、オープンソースエンタープライズRESTベースのリアルタイム検索/分析エンジンです。これはコアの検索機能で、Apache Luceneを使用して構築されていますが、他の多くの機能をサポートしています。

これはJava言語で書かれています。 Store、Index、Search、Analyze Dataをリアルタイムでサポートしています。 MongoDBと同様に、ElasticSearchはDocument-based NoSQL Data Storeです。

建築
** バルク操作をサポート

  • すぐにチャートとダッシュボードを構築する

  • ElasticSearchの欠点や制限: – **

  • MapReduce操作をサポートしていません

  • プライマリデータストアとしては役に立たない

  • ACIDに準拠していないデータストア

  • トランザクションと分散トランザクションはサポートしていません

  • 組み込みの認証機能や認証機能はありません

  • ElasticSearchを使用している人気のあるクライアント: – **

  • Github.com、Quora.com、Stackoverflow.com

  • eBay、DELL、Cisco、Mozilla、Wikimedia

  • Netflix、Symatics、Facebook

  • 英国のHMRC(HM収入

たとえば、Github.comはElasticSearchを使用してファイル、履歴、チケット番号などを検索します。ほとんどの企業では、ELKスタックを使用してログを管理し、システムを監視しています。 ELKはElasticSearch LogstashとKibanaの略です。

  • 注** お客様のユースケースは、https://www.elastic.co/use-casesで見つけることができます

1. ElasticSearchをローカルにインストールする

  • 注** +私たちが知っているように、ElasticSearchはJavaで書かれています。したがって、システムパスにJava/JREを使用する必要があります。 Java環境を正しくインストールして設定してください。

ElasticSearchをローカルファイルシステムにインストールするには、以下の手順に従ってください。

1.2

Windows

  • Zipファイルをローカルファイルシステムにダウンロードして解凍します:

elasticsearch-5.2.1.zip
** F:\ elasticsearch-5.2.1へのZipファイルの抽出

  • 環境変数の設定

     PATH = F:\elasticsearch-5.2.1\bin

ElasticSearchを開始する

     F:/>elasticsearch.bat


image

ブラウザーからhttp://localhost:9200でElasticSearchにアクセスします。 Ctrl Cを使用して、CMDプロンプトからElasticSearchを停止することができます。

1.3

Ubuntu Linux:tarファイルでインストールする

  • Tarファイルをダウンロードしてローカルファイルシステムに展開する

    tar -xvf elasticsearch-5.2.1.tar.gz

ElasticSearchを開始する

    $ ./elasticsearch

ブラウザーからhttp://localhost:9200でElasticSearchにアクセスする

1.4

Ubuntu Linux:コマンドでインストールする

  • ElasticSearchをダウンロードするには、次のコマンドを実行します。

    $ sudo wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-5.2.1.deb

ElasticSearch DEBファイル:elasticsearch-5.2.1.debをダウンロードします

次のdpkgコマンドを実行してElasticSearchをインストールします

    $ sudo dpkg -i elasticsearch-5.2.1.deb

デフォルトでは、ElasticSearchは “/usr/share/elasticsearch”にインストールされます。

ElasticSearchを開始する

    $ ./elasticsearch

ブラウザーからhttp://localhost:9200でElasticSearchにアクセスする

  • 注** ElasticSearchのデフォルトポート番号は「9200」です。必要に応じて、このポート番号を変更することができます。

1.5 ElasticSearchが開始されたら、デフォルトのURLにアクセスして、次のデフォルトのResponseを取得します

ブラウザ:http://localhost:9200

{
  "name" : "rBvi0Hs",
  "cluster__name" : "elasticsearch",
  "cluster__uuid" : "kOQQ__nqfTW-b4vQ00XSvdg",
  "version" : {
    "number" : "5.2.1",
    "build__hash" : "db0d481",
    "build__date" : "2017-02-09T22:05:32.386Z",
    "build__snapshot" : false,
    "lucene__version" : "6.4.1"
  },
  "tagline" : "You Know, for Search"
}

  • 注** + ElasticSearchのソースコードはhttps://github.com/elastic/elasticsearchで見つけることができます

2. ElasticSearch REST APIのURLの基礎

ElasticSearch REST APIのURLは、次の形式にする必要があります。


image、width = 904、height = 405

ここに

  • サーバーとは、「myserver」のようなサーバー名またはホスト名を意味します。時々

私たちは “myhost:9999″のようなノードポート番号を使います。

  • インデックスは小文字でなければなりません。それ以外の場合は例外をスローします。

  • Typeは小文字でも使用することをお勧めします。

このREST APIの使用法と例外について、次のセクションでいくつかの例を挙げて説明します。

3. ElasticSearchの用語

重要なElasticSearch用語については、Index、Type、Document、Key、Valueなどについてはほとんど議論しません。

  • 3.1 ElasticSearchのインデックスとは?** ElasticSearchでは、インデックスはドキュメントの集合です。たとえば、「書店」はドキュメントです。インデックスは、ドキュメントのインデックス作成、検索、更新、削除に使用されます。小文字でなければなりません。

インデックスは、リレーショナルデータベースワールドのデータベースと似ています。

  • 3.2 ElasticSearchでのタイプとは何ですか?** + ElasticSearchでは、タイプは類似したドキュメントのカテゴリです。つまり、一連の類似したドキュメントをタイプにまとめることができます。現実世界では知っているように、 “書店”にはさまざまな種類の品目が含まれています: “書物”、コレクションペン、鉛筆、CDなど。同じように、 “書店”のドキュメント書籍、ペン、CDなどの種類のコレクションを含む

Typeは、リレーショナルデータベースの世界の表と同様です。

  • 3.3 ElasticSearchのドキュメントとは何ですか?** + ElasticSearchでは、ドキュメントはタイプのインスタンスです。それは、キーと値の見本市を持つデータを含んでいます。たとえば、 “title”: “Functional Programming in Java”は、Key of:Type of Document: “Books”の価値見本市です。各ドキュメントにはIDがあります。

ドキュメントは、リレーショナルデータベースの世界のテーブルの行と似ています。

キーは列名で、値は列値です。

4. ElasticSearchコマンドの基本

私たちが知っているように、ElasticSearchは、CRUD(Create Read Update Delete)操作をサポートするRESTベースのAPI(JSON over HTTPプロトコル)をサポートしています。 HTTPメソッドを使用して操作を実行します。

| =========================================== =========== | HTTPリクエストMothod |使用法| GET | ElasticSearch | POSTからデータを取得または選択または読み込む| DELETE | ElasticSearchから既存のデータを削除または削除する| ================================= =================================

  • 注意** ElasticSearch操作をテストするには、POSTMAN、Fiddler、CURLコマンド、SenseなどのRESTクライアントを使用できます。https://chrome.google.com/webstore/search/POSTMAN?hl=enを使用します-US[Google Chrome POSTMAN]を使用してElasticSearch REST APIを調べます。 Chrome拡張機能としてPOSTMANまたはSenseをインストールできます。

5. ElasticSearch CRUD操作

ElasticSearchを使用してMkyong.comのウェブサイトの検索機能を開発し、投稿の詳細、著者の詳細などを検索しましょう。

  • 5.1 CREATE操作例** 新しい文書を `/techfou/posts/1001`と以下のRequest Dataを挿入するには:

{
  "title": "Java 8 Optional In Depth",
  "category":"Java",
  "published__date":"23-FEB-2017",
  "author":"Rambabu Posa"
}

ここで1001はドキュメントIDです。一意に識別するために使用されます。

リンク://wp-content/uploads/2017/03/elasticsearch-4.png[

image

]

説明: –

  • 新しいドキュメントを作成するには、HTTP POSTリクエストメソッドを使用します。

  • ノード:ポート番号:http://localhost:9200

  • インデックス名:techfou

  • タイプ名:投稿

  • リクエストボディタイプをJSONまたはリクエストヘッダーとして追加: “Content-Type”:

“application/json”
** レスポンスの “SEND”ボタンをクリックしてください。

  • レスポンスデータには以下のKey:Valueのペアがあります。

"__index":"mkyong"
"__type":"posts"
"result":"created"
"created":true

CMDプロンプトで以下のログを見ることができます。

…​.[2017-02-26T21:10:33,941][INFO][o.e.c.m.MetaDataCreateIndexService][aH4GiIP][mkyong]creating index, cause[auto(index api)], templates[], shards[5]/[1], mappings[][2017-02-26T21:10:35,790][INFO][o.e.c.m.MetaDataMappingService][aH4GiIP][mkyong/KJsGZgF-Try0k4OHWAgARQ]create__mapping[posts]…​.

次のドキュメントを同じ方法で挿入します。

"/mkyong/posts/1002"
{
  "title": "Elastic Search Basics",
  "category":"ElasticSearch",
  "published__date":"03-MAR-2017",
  "author":"Rambabu Posa"
}
"/mkyong/posts/1003"
{
  "title": "Spring + Spring Data + ElasticSearch",
  "category":"Spring",
  "published__date":"11-MAR-2017",
  "author":"Rambabu Posa"
}
"/mkyong/posts/1004"
{
  "title": "Spring + Spring Data + ElasticSearch",
  "category":"Spring Boot",
  "published__date":"23-MAR-2017",
  "author":"Rambabu Posa"
}

  • 5.2 READ操作の例** ElasticSearchからデータを読み込み、照会または選択するには、REAT API URLの最後に “__search”を使用する必要があります。

リンク://wp-content/uploads/2017/03/elasticsearch-5.png[

image

]

説明: –

  • あなたはURLに “__search”を見ることができます。

  • レスポンスが表示されます:「合計」:4(そのインデックスで4つのレコードが見つかりました。

タイプ。)

  • 5.3クエリパラメータでのREAD操作例** +クエリで “?q =:”構文を使用してクエリパラメータを使用して、レコードをフィルタリングすることができます。

リンク://wp-content/uploads/2017/03/elasticsearch-6.png[

image

]

説明: –

  • レスポンスデータには以下のKey:Valueのペアがあります。それ

この検索で​​見つかったレコードを合計1件表示します。

"total":"1"
"__id":"1002"

  • 5.4 UPDATE操作例** 既存のDocumentデータを以下のように更新しますか?

リンク://wp-content/uploads/2017/03/elasticsearch-7.png[

image

]

説明: –

  • レスポンスデータには以下のKey:Valueのペアがあります。それ

Documentは更新されますが、作成されません。

"result":"updated"
"created":"false"

同じドキュメントをチェックする

リンク://wp-content/uploads/2017/03/elasticsearch-8.png[

image

]

  • 5.5 DELETE操作例** `__id = 1004`の文書を1つ削除しますか?

リンク://wp-content/uploads/2017/03/elasticsearch-9.png[

image

]

説明: –

  • レスポンスデータには以下のKey:Valueのペアがあります。それ

ドキュメントが正常に削除されたことを通知します。

"result":"deleted"
"successful":"1"

6.インデックスは小文字でなければならない

前述したように、Indexは小文字でなければなりません。それ以外の場合、次のようなエラーが発生します。

リンク://wp-content/uploads/2017/03/elasticsearch-10.png[

image

]

我々はIndex: “Mkyong”を小文字で使用しないので、非常に意味のあるエラーメッセージを出します: “無効なインデックス名[Mkyong]、小文字でなければなりません”。

  • 注意** タイプは大文字でもよいが、推奨しない。