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

検索結果 QueryDSL
QueryDSL コミュニティ
1つのキーワードが1つのコミュニティです。
コミュニティ作成
アカウント
見つかりません
QueryDSL を含む検索結果
# 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#
もっと見る