Elasticsearch 6.8から7.10へのクラスタ管理とタスク管理機能の進化

概要 Elasticsearch 7.10では、6.8から大幅な改善が加えられました。特にクエリの自動キャンセル、投票専用ノードロール、非同期検索、検索可能なスナップショットといった重要な機能追加により、クラスタ管理とタスク管理の柔軟性が向上しました。 クエリの自動キャンセル機能 接続が切断された際、関連するバックグラウンド処理も自動的に停止するようになります。この ...

7月24日 23:27 投稿

Elasticsearch実践入門:全文検索アーキテクチャとSpring Boot連携ガイド

全文検索の基礎とElasticsearchのアーキテクチャ 1. 全文検索と逆索引の概念 全文検索は、非構造化テキストデータの中から特定のキーワードやフレーズを高速に抽出する技術です。従来のリレーショナルデータベースでは LIKE '%キーワード%' を用いた部分一致検索が一般的ですが、このアプローチはインデックスを効率的に活用できず、データ規模が増加するにつれてフルスキ ...

7月24日 01:53 投稿

Elasticsearch 7.x を PHP で操作する方法

この記事では、PHPを使用してElasticsearch 7.xに接続し、データをインデックス化および検索する方法について説明します。 必要な環境は以下の通りです。 Laravel 8 PHP 7.3.4 MySQL 5.7 CentOS 8 Elasticsearchのクライアントをインストールします。 composer require elasticsearch/elasticsearch インデックスを作成するためのパラメータ例です ...

7月22日 20:31 投稿

Web Map Service向け検索エンジンの設計と実装アーキテクチャ

Web Map Service検索エンジンの概要 デジタル化が進む現代において、地理空間データの可視化と利活用は極めて重要です。本プロジェクトは、ArcGIS MapServiceやWMS(Web Map Service)などのネットワーク上の地図サービスに特化した検索エンジンの構築を目的としています。このシステムは、Webクローラ技術を用いて自動的に地図サービスのメタデータを収集・インデック ...

7月22日 05:29 投稿

バックエンド実装事例:非同期決済解除・分散ロック連携・ログ基盤・Redis多機能活用

RabbitMQ DLXを活用した決済タイムアウト処理 受注システムの状態遷移において、30分以内に決済が完遂しない場合に自動取消しを行う機構を実装しました。メッセージの有効期限(TTL)切れまたは消費者側での明示的拒否を検知し、デッドレターエクスチェンジ(DLX)経由で別キューへ迂回させる構成としています。 @Component public class OrderStateTransitionConsumer { ...

7月22日 01:46 投稿

Elasticsearchによる集約検索の実装(グループ化統計)

目次- 1 基本的な集約分析 1.1 直接的な集約統計 1.2 検索後に集約 1.3 拡張: fielddataとkeywordの集約比較 2 ネストされた集約 2.1 グループ化後に集約統計 2.2 グループ化、統計、そしてソート 2.3 グループ化、グループ内のグループ化、統計とソート 1 基本的な集約分析 ======== 1.1 直接的な集約統計 (1) 各タグのドキュメント数を計算するリクエスト構文: GET boo ...

7月20日 23:10 投稿

Elasticsearchの災害復旧システム構築:Infini Gatewayを用いた堅牢なアーキテクチャ

Elasticsearchを中心とした基幹システムにおいて、障害発生時の業務継続性を確保するための効果的な災害復旧(DR)ソリューションが求められています。本記事では、Infini Gateway(旧称:极限网关)を活用し、アプリケーション側の改修を最小限に抑えたまま、データの複製とフェイルオーバーを実現するアーキテクチャについて解説します。 アーキテクチャ概要 本ソリュー ...

7月18日 21:23 投稿

Elasticsearch 6.8から7.10へのバージョンアップで追加された集計機能の詳細

本記事では、Elasticsearch 7.10で6.8から新しく追加された集計機能について詳しく見ていきます。 レアターム集計 概要 この集計は、フィールド内の稀に出現する値を検出するために使用されます。通常のタームクエリを使用した正順ソートでは、大量のデータや高基数(多くの異なる値を持つ)データセットで「unbounded」エラーが発生することがあります。レア集計は、この ...

7月18日 21:19 投稿

Lucene 9.5以降のTieredMergePolicy変更とElasticsearchのインデックスマージ設定の最適化

Lucene 9.5におけるマージポリシーの変更点 Lucene 9.5のリリースにより、`TieredMergePolicy`に関連する重要なデフォルト設定が変更されました。具体的には、削除されたドキュメントの許容比率を定めるパラメータ`index.merge.policy.deletePctAllowed`のデフォルト値が、従来の33%から20%へと引き下げられています。さらに、設定可能な最小値も従来の20%から5%まで拡張さ ...

7月14日 21:52 投稿

Elasticsearchにおける集計処理の実装パターン

Elasticsearchでは、text型フィールドに対してデフォルトで集計やソートが禁止されています。fielddata=trueを設定することで有効化できます。 PUT access_logs/_mapping { "properties": { "publisher_org": { "type": "text", "fielddata": true } } } 1. 基本的なバケット集計 単純なグループ化によるドキュメント数の集計です。 クエリ例 ...

7月13日 22:46 投稿