ワイルドカードクエリ

ワイルドカードパターンに一致する用語を含むドキュメントを返します。

ワイルドカード演算子は、1つ以上の文字に一致するプレースホルダーです。たとえば、*ワイルドカード演算子は、0個以上の文字に一致します。ワイルドカード演算子を他の文字と組み合わせて、ワイルドカードパターンを作成できます。

例のリクエスト

次の検索は、user.idフィールドにkiで始まりyで終わる用語が含まれるドキュメントを返します。これらの一致する用語には、kiykity、またはkimchyが含まれる場合があります。

Python

  1. resp = client.search(
  2. query={
  3. "wildcard": {
  4. "user.id": {
  5. "value": "ki*y",
  6. "boost": 1,
  7. "rewrite": "constant_score_blended"
  8. }
  9. }
  10. },
  11. )
  12. print(resp)

Ruby

  1. response = client.search(
  2. body: {
  3. query: {
  4. wildcard: {
  5. 'user.id' => {
  6. value: 'ki*y',
  7. boost: 1,
  8. rewrite: 'constant_score_blended'
  9. }
  10. }
  11. }
  12. }
  13. )
  14. puts response

Js

  1. const response = await client.search({
  2. query: {
  3. wildcard: {
  4. "user.id": {
  5. value: "ki*y",
  6. boost: 1,
  7. rewrite: "constant_score_blended",
  8. },
  9. },
  10. },
  11. });
  12. console.log(response);

コンソール

  1. GET /_search
  2. {
  3. "query": {
  4. "wildcard": {
  5. "user.id": {
  6. "value": "ki*y",
  7. "boost": 1.0,
  8. "rewrite": "constant_score_blended"
  9. }
  10. }
  11. }
  12. }

ワイルドカードのトップレベルパラメータ

  • <field>
  • (必須、オブジェクト) 検索したいフィールド。

のパラメータ

  • boost
  • (オプション、浮動小数点) クエリの関連スコアを減少または増加させるために使用される浮動小数点数。デフォルトは1.0です。
    boostパラメータを使用して、2つ以上のクエリを含む検索の関連スコアを調整できます。
    ブースト値は、1.0のデフォルト値に対して相対的です。01.0の間のブースト値は、関連スコアを減少させます。1.0より大きい値は、関連スコアを増加させます。
  • case_insensitive [7.10.0] 7.10.0で追加されました。
  • (オプション、ブール値) trueに設定すると、インデックスされたフィールド値とのパターンの大文字と小文字を区別しない一致を許可します。デフォルトはfalseで、これは一致の大文字と小文字の区別が基になるフィールドのマッピングに依存することを意味します。
  • rewrite
  • (オプション、文字列) クエリを再構築するために使用されるメソッド。有効な値と詳細については、rewriteパラメータを参照してください。
  • value
  • (必須、文字列) 提供された<field>内で見つけたい用語のワイルドカードパターン。
    このパラメータは、2つのワイルドカード演算子をサポートしています:
    • ?、これは任意の単一文字に一致します
    • *、これは0個以上の文字に一致でき、空の文字も含まれます
      *または?でパターンを開始することは避けてください。これにより、一致する用語を見つけるために必要な反復回数が増加し、検索パフォーマンスが低下する可能性があります。
  • wildcard
  • (必須、文字列) valueパラメータのエイリアス。valuewildcardの両方を指定すると、クエリはリクエストボディ内の最後のものを使用します。

ノート

高コストのクエリを許可する

search.allow_expensive_queriesがfalseに設定されている場合、ワイルドカードクエリは実行されません。