Elasticsearchの概要とインストール手順

Elasticsearchの概要 Elasticsearchとは Elasticsearch(以下ES)は、オープンソースのフルテキスト検索エンジンサーバーで、ほぼリアルタイムにデータの保存・検索が可能です。数百台のサーバーにスケールしてPB単位のデータを処理できる拡張性が特徴です。Javaで開発され、Luceneをコアとしてインデックス作成と検索機能を実装していますが、Restful APIやJava APIを通 ...

6月29日 16:44 投稿

INFINI Easysearchの書き込み速度制御機能の実践的活用ガイド

検索エンジンシステムにデータをインポートした経験のある開発者であれば、実行中のESクラスタにデータを一括インポートすると、クエリの応答時間に影響を与える可能性があることをご存じでしょう。特に大量のデータをインポートする場合、この影響は避けられません。通常、このような操作は業務のオフピーク時間帯に限定されますが、即時実行が必要な場合は、業務クエリへ ...

6月28日 02:26 投稿

Elasticsearchクラスターの構築

前提条件の準備 Linuxサーバー3台(各々16GBメモリ、8コアCPU、50GBディスク) JDK 17 環境の設定 elasticsearch-8.17.2-linux-x86_64.tar.gz インストールパッケージ クラスタープランニング Elasticsearchクラスターでは、ノードが異なる役割を担います: マスターノード(Master Node):クラスター管理、ノード選挙、インデックスメタデータ管理を行います。高可用 ...

6月26日 22:29 投稿

Elasticsearchクラスタ保護のためのINFINI Gatewayを用いた不正クエリブロック手法

本記事ではINFINI Gatewayを使用してElasticsearchクラスタに対して不正なクエリをブロックする手法について解説します。この手法はOpensearchやEasysearchにも適用可能です。 問題の背景 ElasticsearchのOOM(メモリ不足)問題の多くは、以下の2種類のクエリパターンに起因しています: クラスタの処理能力を超えるクエリスループット メモリを過剰に消費する不正 ...

6月20日 21:27 投稿

【ElasticSearch】インデックス(更新)

フィールドの追加 REST API ドキュメント:https://www.elastic.co/guide/en/elasticsearch/reference/7.13/docs-reindex.html 空のインデックス myindex を準備します PUT /myindex { "settings": { "number_of_shards": 1, "number_of_replicas": 1 } } 新しいフィールドを追加します PUT /myindex/_mapping { "properties": { "name": { " ...

6月15日 19:34 投稿

分散ログ収集基盤の構築:Elasticsearch + Kafka + ZooKeeper + rsyslog

多くのシステムで共通する課題として、開発者がサーバーに直接アクセスできないことや、ログが各サーバーに散在し検索が困難であること、さらに大量のログデータによりリアルタイムなクエリが困難であることが挙げられます。これらの問題を解決するために、集中型のログ収集・分析基盤を構築します。 前提条件とアーキテクチャ概要 本環境では、以下のソフトウェアスタッ ...

6月8日 17:42 投稿

Elasticsearchの設定ミスが引き起こした重大な問題

状況説明 Elasticsearchバージョン 7.1.4を使用しています。プロダクション環境でインデックスに新しいフィールドを追加しようとしたところ、"Setting index.mapper.dynamic was removed after version 6.0.0"というエラーが発生しました。単純にフィールドを追加するだけのはずだったのにです。 詳細なエラー内容 curl -X PUT "http://localhost:9200/sample_index/_mapp ...

6月6日 16:19 投稿

Elasticsearch と MySQL の JOIN 機能: データモデル設計の核心

Elasticsearch は MySQL のような多テーブル JOIN クエリを直接サポートしません。これは反正規化設計、分散アーキテクチャ、近似実時間処理の本質に起因します。JOIN を強制的に実装するとパフォーマンス急落、データ不整合、メンテナンスコスト上昇を招きます。 しかし適切なデータモデル設計により、90% の JOIN 要件を ES のネイティブ機能で効率的に処理可能です。 ...

6月5日 16:41 投稿

Elasticsearch 6.0 Java APIの使用方法

Elasticsearch 6.0におけるJava APIの活用 1:Java APIを使用したElasticsearchクライアントの作成 package com.example.elasticsearch.client; import org.elasticsearch.client.transport.TransportClient; import org.elasticsearch.common.settings.Settings; import org.elasticsearch.common.transport.TransportAddress; import org.elasticsearch.transport.clien ...

6月4日 22:04 投稿

Elasticsearch技術解説

多くの日常的なプロジェクトにおいて、検索機能は最も頻繁にアクセスされるページの一つです。現在の検索機能はデータベースに基づくあいまい検索によって実装されており、多くの問題点があります。 まず第一に、検索効率が低いことです。 データベースのあいまい検索はインデックスを利用しないため、データ量が大きくなると検索性能が著しく低下します。検索エンジンに切 ...

6月3日 18:42 投稿