登録して招待リンクを共有すると、動画再生報酬と紹介報酬を獲得できます。

検索結果 Elasticsearch
Elasticsearch コミュニティ
1つのキーワードが1つのコミュニティです。
コミュニティ作成
アカウント
見つかりません
Elasticsearch を含む検索結果
# Elasticsearchの機能と実践的な使い方 🔎 「検索→変換→集計」を1本のパイプで書ける。SQLライクで学習コストが低い新世代のクエリ言語、それがES|QLです。 🏷️ タイトル: ES|QL(パイプ型クエリ言語) 🔗 URL: 📘 概要 ES|QLはElasticsearchのデータを問い合わせ・集計・可視化・アラート化まで一気通貫で扱える新しいクエリ言語です。Unixのパイプのように `|` でコマンドを連結し、データを段階的に絞り込み・変換・集約していきます。JSONの集計DSLを書かずに、アドホック分析を素早く進められます。 ⚙️ 機能の説明 クエリは必ずソースコマンドから始まり、処理コマンドをパイプで連結する構造です。 ・`FROM` でインデックス/データストリームを指定(時系列向けの `TS` もある) ・`WHERE` で行を絞り込み ・`STATS ... BY` で集計とグルーピング ・`EVAL` で派生列を生成、`SORT` で並べ替え、`LIMIT` で件数制限 ・`KEEP`/`DROP`/`RENAME` で出力列を制御 ・`DISSECT`/`GROK` で非構造テキストをパース ・`LOOKUP JOIN` でマスタデータと結合、`ENRICH` でポリシー付与 コマンドや関数名は大文字小文字を区別しません(`FROM` も `from` も同じ)。 🛠️ 実践的な使い方 障害調査では、検索から集計までを次のように1本で書けます。 `FROM logs-* | WHERE status >= 500 | STATS count = COUNT(*) BY BUCKET(@timestamp, 5m) | SORT count DESC` Kibanaのエディタはオートコンプリート、インライン補完、Prettifyボタンによる自動整形を備え、実行後はフッターに処理ドキュメント数などの統計が出ます。同じES|QLがDiscover・ダッシュボードのパネル・アラートルール・Elastic Securityで共通に使えるのが大きな利点です。クエリ履歴やお気に入り(スター)機能で定番クエリの再利用も可能です。 💡 ユースケース ・SREのアドホックなログ分析(エラー率のサービス別・時間バケット別集計) ・ダッシュボードのES|QL可視化パネル ・セキュリティの検知ルールやアラート条件の記述 ・`LOOKUP JOIN` でサービス名→チーム名のようなマスタ結合を行う運用分析 ⚠️ 注意点 ・フィルタなしで多数のインデックスを横断するとレスポンスが肥大化するため、`KEEP`/`DROP` で列を絞ること。 ・Kibana内では `SET time_zone` ではなく `dateFormat:tz` 設定でタイムゾーンを扱う。 ・自然言語からのクエリ生成はEnterpriseライセンスとコネクタ設定が必要です。 ・マッピングされていないフィールド参照は既定で失敗するため注意が必要です。 #Elasticsearch# #ESQL#
もっと見る
# Elasticsearchの機能と実践的な使い方 🧩 「キーワード + たくさんの絞り込み」を1つのJSONで表現する——Query DSLとその`bool`クエリは、検索バックエンドのデファクトです。filter句の使い分けが性能を左右します。 🏷️ タイトル: Query DSL(JSON クエリ言語) 🔗 URL: 📘 概要 Query DSLは、`_search` APIを通じて使うJSON形式のクエリ言語です。検索・フィルタ・集計を表現でき、クエリは互いに連結した節(clause)の抽象構文木として組み立てられます。検索バックエンド実装の事実上の標準です。 ⚙️ 機能の説明 理解の鍵は2つの分類です。 ・節の種類:単独で動く「リーフクエリ」(`match`/`term`/`range`など)と、それらを束ねる「複合クエリ」(`bool`/`dis_max`など)。 ・コンテキスト:クエリコンテキストは「どれだけ一致するか」を問い、`_score`を計算します。フィルタコンテキストは「一致するか否か」のYes/Noのみで、スコア計算をせず高速・自動キャッシュされます。 中心となる`bool`クエリの4節は、`must`(一致必須・スコアあり)、`should`(任意・スコア加点、`minimum_should_match`で制御)、`filter`(一致必須・スコアなし・キャッシュ)、`must_not`(除外・フィルタコンテキスト)です。 🛠️ 実践的な使い方 求人検索のように、キーワード検索を`must`に、絞り込みを`filter`に置く構成です。 ``` { "query": { "bool": { "must": [ { "multi_match": { "query": "バックエンド エンジニア", "fields": ["title", "description"] } } ], "filter": [ { "term": { "location": "tokyo" } }, { "terms": { "employment_type": ["fulltime", "contract"] } }, { "range": { "salary": { "gte": 5000000 } } } ] } } } ``` キーワードはスコアに効かせたいので`must`、勤務地・雇用形態・年収はスコア不要なので`filter`に置きます。`filter`句はキャッシュされ繰り返し実行が速くなります。 💡 ユースケース ECや求人・不動産など「全文検索 + 構造化された多数の絞り込み」を持つ検索アプリ全般に当てはまります。スコアで並べたい条件と、単に該当/非該当で絞りたい条件を`must`と`filter`に振り分けることで、関連度ランキングと厳密な絞り込みを両立できます。 ⚠️ 注意点 最大の落とし穴は`term`と`match`の取り違えです。`term`は解析せず完全一致するため、解析済みの`text`フィールドに使うと0件になりがちです。`text`には`match`、`keyword`やステータス・日付などの構造化フィールドには`term`を使います。スコア不要の条件は必ず`filter`に置き、キャッシュとCPU削減の恩恵を受けましょう。 #Elasticsearch# #QueryDSL#
もっと見る
# Elasticsearchの機能と実践的な使い方 🗣️ 「ノートパソコン」と「ラップトップ」を同じものとして検索したい——そんな表記ゆれ・言い換えを吸収するのが同義語(シノニム)機能です。Synonyms APIなら再インデックスなしで運用できます。 🏷️ タイトル: Synonyms API / synonym token filter 🔗 URL: 📘 概要 同義語機能は、同じ概念を別の語で表現したドキュメントもヒットさせ、検索の関連性を高めます。ドメイン固有の語彙やよくある誤記の吸収にも使えます。Synonyms APIで同義語セットを独立リソースとして管理すれば、複数のアナライザーから参照でき、更新時の再インデックスも不要になります。 ⚙️ 機能の説明 ルールには2つの書式があります。 ・等価(双方向):`ノートパソコン, ラップトップ, notebook` のようにカンマ区切り。`expand=true`で全語が相互にマッチ、`expand=false`で先頭語を正規形にまとめます。 ・明示(片方向):`i-pod, i pod => ipod` のように `=>` で左辺を右辺へ置換します。 トークンフィルタは`synonym`と`synonym_graph`の2種があり、複数語の同義語を正しく扱える`synonym_graph`が推奨です。同義語は検索時(search-time)に適用すると、更新しても再インデックスが不要になります。 🛠️ 実践的な使い方 Synonyms APIで同義語セットを作り、`updateable: true`のアナライザーから参照します。 ``` PUT _synonyms/my-synonym-set { "synonyms_set": [ { "id": "1", "synonyms": "ノートパソコン, ラップトップ, notebook" }, { "id": "2", "synonyms": "pc => personal computer" } ] } ``` このセットを `synonym_graph` フィルタの `synonyms_set` に指定し、検索用アナライザー(`search_analyzer`)に組み込みます。`updateable: true`なら、APIでセットを更新すると関連アナライザーが自動でリロードされ、即座に検索結果へ反映されます。`_analyze` APIで適用結果を事前確認できます。 💡 ユースケース EC検索の品質改善サイクルに最適です。検索ログを分析して「ヒット0件だった言い換え語」を見つけ、Synonyms APIで同義語セットに追加するだけで、再インデックスなしに即反映できます。「探しているのに見つからない」を継続的に潰していけます。 ⚠️ 注意点 複数語の同義語は必ず`synonym_graph`を使ってください(旧`synonym`フィルタは位置情報を壊します)。同義語リストが大きいとヒープを消費し、95%を超えるとサーキットブレーカーが作動します。`lenient=false`の場合はインデックスがredになり得るため、本番ではインラインではなくAPI管理のセットを使うのが安全です。 #Elasticsearch# #SearchRelevance#
もっと見る
# Elasticsearchの機能と実践的な使い方 📦 「テーブル設計を固めてから」ではなく、JSONを投げ込んだ瞬間からデータが扱える。Elasticsearchのインデックスは、検索もスケールも前提にしたドキュメント指向データストアです。 🏷️ タイトル: インデックス(Index)/ ドキュメント指向データストア 🔗 URL: 📘 概要 インデックスはElasticsearchにおけるデータ格納の基本単位で、あなたが操作する論理的なまとまりです。データは1件ずつJSONの「ドキュメント」として格納され、各ドキュメントはフィールドのキーと値の集合に加えて`_index`・`_id`・`_version`といったメタデータを持ちます。 ⚙️ 機能の説明 ・実データは`_source`フィールドに入り、`_index`(所属インデックス)・`_id`(一意ID)・`_version`(バージョン)などはシステム管理のメタデータです。 ・各フィールドの型や、どうインデックス・検索するかは「マッピング(mapping)」で決まります。`text`(全文検索向け)・`keyword`(完全一致・集計向け)・`integer`・`date`などを使い分けます。 ・マッピングを明示しなくても、投入されたJSONから型を推測する「ダイナミックマッピング」が働くため、新しいフィールドを後から足してもそのまま取り込めます。 ・内部では1つのインデックスが複数の「シャード」に分割され、ノード間に分散配置されます。シャード内のデータは不変(immutable)な「セグメント」として書かれ、レプリカシャードによって冗長性とスケールを確保します。 ・`index.number_of_shards`(作成時固定)、`index.number_of_replicas`(後から変更可)、`index.refresh_interval`(既定1秒)などの設定でインデックスの挙動を制御します。 🛠️ 実践的な使い方 ドキュメント1件の投入はシンプルです。 `POST products/_doc/p-1001` `{ "name": "ワイヤレスイヤホン", "price": 8900, "stock": 120, "category": "audio" }` 大量投入には`_bulk` APIを使い、1リクエストで多数の操作をまとめます。 `POST products/_bulk` `{ "index": { "_id": "p-1001" } }` `{ "name": "ワイヤレスイヤホン", "price": 8900 }` `{ "index": { "_id": "p-1002" } }` `{ "name": "USB-Cケーブル", "price": 1200 }` 新フィールド(例: `sustainability_score`)を後から含めて投入しても、ダイナミックマッピングがそのまま受け付けます。 💡 ユースケース ECサイトの商品カタログを`products`インデキスとして作り、1商品=1JSONドキュメント(商品名・価格・在庫・カテゴリ・説明文)で管理する構成が定番です。日次バッチで`_bulk`を使って数十万件を一括投入し、RDBのスキーマ変更を待たずに新しい属性を追加していけます。 ⚠️ 注意点 ・一度決めたフィールドの「型」は後から変更できません。型を変えたい場合は新インデックスへの再インデックス(reindex)が必要です。 ・頻繁に同じドキュメントを更新する用途には通常のインデックスを、追記中心の時系列データにはデータストリームを使うのが推奨です。 ・シャードの数とサイズはクエリ速度とクラスタ安定性に直結します。小さすぎる大量のシャードは避け、適切なサイズ設計を意識してください。 #Elasticsearch# #データモデリング#
もっと見る
# Elasticsearchの機能と実践的な使い方 🌊 もう` 🏷️ タイトル: Data stream(追記型時系列データの論理ストリーム) 🔗 URL: 📘 概要 データストリームは、追記型(append-only)の時系列データ格納に最適化された複数インデックスを、1つの名前で扱う抽象レイヤーです。ログ・イベント・メトリクスのように次々と流れ込むデータに向いており、利用者は隠された「バックインデックス」群を意識せず、単一のリソース名へ読み書きできます。 ⚙️ 機能の説明 ・データストリームの実体は、自動生成される複数の隠しバックインデックスです。命名は`.ds-<データストリーム名>-<>-<世代>`で、世代は`000001`から始まる6桁ゼロ詰めの整数です(例: `.ds-logs-myapp-prod-2026.06.10-000001`)。 ・書き込みは常に最新の「ライトインデックス」1つだけが受け付けます。古いバックインデックスへは直接書き込めません。 ・検索は自動的にすべてのバックインデックスへルーティングされ、データセット全体を横断して問い合わせられます。 ・各ドキュメントには`date`または`date_nanos`型の`@timestamp`フィールドが必須です。テンプレートに無ければ既定の`date`マッピングが自動適用されます。 ・利用には`data_stream`定義を含むインデックステンプレートが必須で、マッピング・設定・ライフサイクルポリシーをここで定義します。1つのテンプレートを複数のデータストリームで共有できます。 ・年齢やサイズの閾値に達すると「ロールオーバー」が走り、新しいバックインデックスが作られてライトインデックスが切り替わります。これはILMやデータストリームライフサイクルで自動化されます。 🛠️ 実践的な使い方 まず`data_stream`を含むインデックステンプレートを用意します。 `PUT _index_template/logs-myapp-template` `{ "index_patterns": ["logs-myapp-*"], "data_stream": {}, "template": { "mappings": { "properties": { "@timestamp": { "type": "date" } } } } }` あとはアプリから常に同じ名前へ書くだけです。 `POST logs-myapp-prod/_doc` `{ "@timestamp": "2026-06-10T09:00:00Z", "level": "INFO", "message": "started" }` 💡 ユースケース アプリケーションログを`logs-myapp-prod`というデータストリームへ書き込み、バックインデックスのロールオーバーは自動管理に任せる構成が定番です。アプリ側は日付別インデックス(` ⚠️ 注意点 ・バックインデックス名は内部実装の詳細です。restoreやshrinkで変わることがあるため、名前から日付などのロジックを組まないでください。 ・頻繁に同じIDで上書き更新(last-write-wins)したい用途には不向きで、その場合は通常のインデックスやエイリアスを使います。 ・更新・削除は`update by query`・`delete by query`など専用APIを使い、ライトインデックス以外への直接書き込みはできません。 ・データストリームが使用中のインデックステンプレートは削除できません。 #Elasticsearch# #データストリーム#
もっと見る
⚡ 数十億件の集計を、クエリの先頭に1行足すだけで最大100倍速く。しかも統計的に厳密な信頼区間付き——Elasticsearch ES|QLの近似クエリです。 タイトル: Approximate queries in Elasticsearch ES|QL: 100x faster on billions of records, with built-in confidence intervals URL: 📝 概要 Elasticsearch 9.4は、ES|QLに近似クエリ実行を導入します。既存クエリの先頭にSET approximation = true;を付けるだけで、自動的なサンプリングと外挿が有効になり、クエリの書き換えは不要です。 ❓ 解決する課題 数十億ドキュメントの厳密な集計は、計算コストが行数に比例して増えるため高コストでした。これが大規模インデックスでのインタラクティブな探索やリアルタイムダッシュボードの妨げになっていました。 💡 方法論と提案手法 ・サンプリングはLucene層で行われ、サンプル分のドキュメントだけを読むため、I/Oと計算の節約はサンプリング率に比例します ・サンプル上で実行した結果を、データセット全体を表すよう自動でスケールします ・信頼区間はサンプルのサブパーティションへのブートストラップ法で厳密に計算します ・各結果に「certifiedフラグ」が付き、形式的な統計保証が成り立つかを示します 🎯 ユースケース エージェントが数十億件をサブ秒で走査して候補を絞り、必要な箇所だけ厳密クエリへズームインする、といった使い方ができます。ダッシュボードの高速描画や巨大ログのパターン検出にも有効です。 📊 実験結果 ・ClickBenchで信頼区間付き平均23倍、個別クエリのピークは約100倍、区間計算なしでは最大約300倍 ・サンプリングコストは一定なので、データが大きいほど高速化率も大きくなります ・対応集計はCOUNT/SUM/AVG/MEDIAN/PERCENTILE/STD_DEVなど。rowsとconfidence_levelで精度と速度を調整できます #Elasticsearch# #DataAnalytics#
もっと見る
🔎 フロンティアモデルの賢さだけでは本番AIは動かない。権限・監査つきで企業データを正確に引き出す検索基盤と組み合わせて初めて回ります。 TL;DR: ElasticとOpenAIが提携拡大。Elasticsearchを権限対応の永続メモリ層にして、エージェント・オブザーバビリティ・セキュリティを一気に強化します。 タイトル: Elastic and OpenAI collaborate to bring frontier intelligence to unstructured enterprise data URL: ポイント 🧠 Elasticsearchを永続メモリ層に(レキシカル+ベクトル+再ランキング+アクセス制御) 🎯 Knowledge Indicatorの事前計算で入力トークン最大75%削減、回答精度60→92% 🔒 社内テストでリコール0.89、ユーザー間のデータ完全保護 🛡 Attack Discoveryがアラートを攻撃チェーンに相関、MITRE ATT&CKへマッピング ⚡ Visaはトリアージを10〜20分→数秒、Airtelは分析最大40%・調査30%高速化 🔌 Agent BuilderはMCP経由でスキル公開、Splunk/QRadarルールの移行にも対応 賢さ+検索基盤+ガバナンスが揃って本番AIになる、という現実的な設計だと感じます。 #Elasticsearch# #OpenAI#
もっと見る
Postgres で十分じゃん、というWebサイト。Postgresに限らずだけど、そんなにスケールする必要がないのはそうだと思う。 ・多くのシステムではキャッシュや検索などに別々のデータベースを使いすぎ ・時期尚早な最適化であり、運用や保守の負担を増大させるだけ ・目的ごとにRedisやElasticsearchなどを追加していくのがよくある開発パターン ・その結果、システムが複雑化し、監視やバックアップの手間が膨れ上がる ・データベースをPostgres一つに絞れば、運用や障害対応を一本化できる ・ただ、Postgresは大規模なシステムには向かないという批判をよく耳にする ・しかし、実際にそこまでの規模に達するプロジェクトは全体のわずか ・スタートアップ企業はインフラ構築よりも、本来の課題解決に労力を注ぐ方が良い ・多くのユーザーを抱える大企業でさえ、枯れた技術を信頼して活用している ・Postgresの処理能力の限界に達してから、別のシステムを追加しても遅くはない ・キャッシュ機能はRedisを使わなくてもPostgresの機能で代用できる ・ジョブキューや全文検索、ドキュメントの保存もPostgresの拡張機能で対応可能 ・AI向けのベクトル検索や時系列データの処理などもPostgresで実行できる ・もちろん、専用のデータベースが必要になる場面もある ・ただその導入のハードルは高く設定しておいて良い ・Postgresを限界まで使い倒してみよう ・それでも不足する場合にのみ新しいシステムを追加したら良い
もっと見る