検索クエリ
    • PDF

    検索クエリ

    • PDF

    Article Summary

    Classic/VPC環境で利用できます。

    Cloud Searchは検索のための Search APIを提供します。ドメイン作成時に設定した文書設定およびインデックス設定を利用して検索できます。検索リクエスト方法は、次のうち1つを選択できます。

    検索クエリでは、検索クエリの形式とフィールド別説明および作成例を案内します。

    参考

    ここでは、検索クエリに関する内容を中心に説明します。API使用方法の詳細は Cloud Search APIガイドをご参照ください。

    リクエストボディに入力

    検索クエリをリクエストボディに入力して APIを呼び出します。

    • JSON形式の Query DSL形式で入力します。
    • メソッドは HTTP POSTを選択します。

    リクエストボディに入力する検索クエリのテンプレートは、次の通りです。

    {
      "start": (string|int),
    
      "display": (string|int),
    
      "result_format": (string),
    
      "search": {
        "[index_name]": {
          "[query_method]": [{
            "query": (string),
            "name": (string),
            "type": (string),
            "option": (string|bool),
            "ratio": (string|double),
            "term_extractor": (string),
            "syno": (bool),
            "stopword": (string)
          }]
        }
      },
    
      "sort": {
        "[sort_target]": (string)
      },
    
      "scope": {
        "[scope_target]": {
          "[scope_method]": (string|int|double|array)
        }
      },
    
      "key_scope": {
        "[scope_method]": (string|array)
      },
    
      "user_scope": (string),
    
      "highlighting": {
        "enable": (string|bool),
        "pre_tag": (string),
        "post_tag": (string),
        "[highlighting_option]": (string|bool)
      },
    
      "display_section": (string|array),
      "passage": {
        "[section_name]": {
           "passage_type": (string),
           "passage_option": (string),
           "max_length": (string)
        },
      },
    
      "aggregate": {
        "[docprop_name]": {
          "max": (string),
          "min": (string),
          "one": (string),
          "sum": (string)
        }
      },
    
      "result_processing": {
        "[section_name]": {
          "remove_duplicate": (string|bool)
        }
      },
    
      "setting": {
        "transfer_timeout": (string|int),
        "search_timeout": (string|int),
        "use_df": (string|bool),
        "reuse_term_extractor": (string|bool),
        "log_level": (string|list),
      }
    }
    

    各フィールドについての説明は、次の通りです。

    フィールド名要否タイプ制約事項説明参考
    startNoString, Integerデフォルト値: 1検索結果のスタートランキングstart
    displayNoString, Integerデフォルト値: 20検索結果の件数display
    result_formatNoStringデフォルト値: json検索結果形式を指定result_format
    searchYes
  • index_name: String
  • queryList: List<SearchQuery>
  • Index_name: 過去に作成されたインデックスの中から選択
  • queryList: SearchQuery.query_methodが「main」の mainクエリを必ず含む
  • Index_name: 検索するインデックス名
  • queryList: 検索リクエストクエリ
  • search
    sortNoObject-検索結果のソート基準を表す Map形式の Objectsort
    scopeNoList<SearchScope>-制限検索設定リストscope
    key_scopeNoObject-制限検索を設定する Map形式の Objectkey_scope
    user_scopeNoStringランキングコード形式の数式
  • ユーザーが直接 scope数式を入力
  • scopeパラメータの内容と AND条件で適用
  • user_scope
    highlightingNoSearchHighlightingデフォルト値: true検索結果構文強調の設定highlighting
    display_sectionNoString, Array既に作成したセクションの中から選択検索結果で表示するセクションを指定display_section
    passageNoList<SearchPassage>-検索結果抽出方法を設定passage
    aggregateNoList<SearchAggregate>-検索結果の要約設定リストaggregate
    rankingNo
  • ranking.name: string
  • ranking.code: string
  • ranking.override_value.{ranking_value}: string, int, float
  • -ランキングモジュールまたはランキングコードの設定ranking
    result_processingNoSearchResultProcessing-検索結果後処理の設定result_processing
    settingNoSearchSetting-検索時にその他の環境設定setting

    start

    表示する検索結果のスタートランキングを選択するフィールドです。デフォルト値は1で入力形式は、次の通りです。

    {
      "start": (string|int)
    }
    

    例)

    {
      "start": 1,
      "search": {
        "body_sgmt": {
          "main": {
            "query": "検索"、
          }
        }
      },
    }
    

    display

    表示する検索結果の個数を選択するフィールドです。デフォルト値は20で入力形式は、次の通りです。

    {
      "display": (string|int)
    }
    

    例)

    {
      "display": 20,
      "search": {
        "body_sgmt": {
          "main": {
            "query": "検索"、
          }
        }
      },
    }
    

    result_format

    検索結果の形式を指定します。入力形式は、次の通りです。

    {
      "result_format": (string)
    }
    
    • result_format: 検索結果の形式を json、xmlの中から選択(デフォルト値: json)

      例)

      {
        "search": {
          "body_sgmt": {
            "main": {
              "query": "検索"、
            }
          }
        },
        "result_format": "json"
      }
      

    search

    検索のためのフィールドで、必須入力フィールドです。入力形式は、次の通りです。

    {
      "search": {
        "[index_name]": {
          "[query_method]": {
            "query": (string),
            "name": (string),
            "type": (string),
            "option": (string),
            "ratio": (string|double),
            "term_extractor": (string),
            "syno": (bool),
            "stopword": (string)
          }
        }
      }
    }
    
    • [index_name]: 検索するインデックスを指定
    • [query_method]: 検索方法を選択
      • main: 検索リクエスト時に必ず含めて、mainクエリを指定します。
        • 検索結果は mainクエリ結果集合の和集合演算した結果です。
      • intersection: intersectionクエリを指定します。
        • 検索結果は mainクエリ結果集合と intersectionクエリ結果集合の積集合演算した結果です。
      • scope: scopeクエリを指定します。intersectionクエリと効果は同じですが、文書加重値(qds)が変更されません。
      • exclusion: exclusionクエリを指定します。
        • 検索結果は main、intersection、scopeクエリ結果集合と exclusionクエリ結果集合の差集合演算した結果です。
      • rerank: 検索結果に影響を与えませんが、文書加重値(qds)が変更されます。
        • 使用可能なクエリタイプ: simbstproxrank
    • query: 検索クエリを指定
    • name: 検索時に使用するクエリ名を指定
    • type: クエリタイプを指定
      • oneterm: クエリのタームが1つの場合に使用し、当該タームを含む文書を検索します。タームが複数の場合は、最初に分析されたタームを使用します。
      • nterm: クエリのタームが複数の場合に使用し、当該単語を含む文書を検索します。option パラメータを使用できます。
      • nofm: クエリのタームがratioパラメータに指定された比率以上に含まれた文書を検索します。
      • ebool: boolean演算子を組み合わせた結果を満たす文書を検索します。
        • 使用可能な演算子: &(AND)、|(OR)、!(NOT)
        • 複数の演算子を入力できます。
        • 検索ユーザーが直接演算子を入力でき、演算子(&|!)の左右に空白がないと演算子として認識できません。
        • インデックスキーワードと演算子の関係を postorder形式で構成して bool表現式を作成する必要があります。
      • simbst: 検索された文書の中でクエリ単語を含む文書はratioパラメータで与えられた値だけ文書加重値(qds)を上げます。
      • proxrank: 近接度(prox)を計算します。
      • null: 空クエリで全体文書を検索します。
    • option: クエリタイプのオプションを指定
      • and: 与えられたすべてのタームが含まれている文書のみ検索します。
      • or: 与えられたタームの中で1つでも含まれている文書をすべて検索します。
      • advance: 与えられたすべてのタームが順に含まれ、隣接する2つのインデックスキーワードの距離がその位置の差と同じ文書を検索します。
      • near: 与えられたすべてのタームが順に関係なく含まれ、隣接する2つのインデックスキーワードの距離がその位置の差以内の文書を検索します。
      • within: 与えられたすべてのタームが順に含まれ、隣接する2つのインデックスキーワードの距離がその位置の差以内の文書を検索します。
      • ormax: orと同じですが、演算子が適用されたインデックスキーワードの中でランキング値が最も大きなインデックスキーワードを選択します。シノニム検索で使用します。
    • ratio: 特定クエリタイプ(nofmsimbst)を使用する場合の比率指定
    • term_extractor: 検索クエリのターム抽出方法を指定(デフォルト値: インデックスの解析オプション)
      • インデックス解析ツールで韓国語と英語を同時に使用する場合は、このオプションを使用します。
      • 例) "term_extractor": "sgmt +english +revert +korea +josacat +eomicat"
      • 使用する際には、settingフィールドに"reuse_term_extractor": trueオプションを追加します。
    • syno: シノニム辞書の使用有無を選択
    • stopword: 適用するストップワードルールを入力

    searchフィールドの作成例は、次の通りです。

    • 検索方法([query_method])別例
      例) mainクエリ

      {
        "search": {
          "body_sgmt": {
            "main": {
              "query": "検索"、
              "type": "nterm",
              "option": "and"
            }
          }
        }
      }
      

      例) intersectionクエリ

      {
        "search": {
          "body_sgmt": {
            "main": {
              "query": "検索"、
              "type": "nterm",
              "option": "and"
            },
            "intersection": {
              "query": "いいね"、
              "type": "nterm",
              "option": "and"
            }
          }
        }
      }
      

      例) scopeクエリ

      {
        "search": {
          "body_sgmt": {
            "main": {
              "query": "検索"、
              "type": "nterm",
              "option": "and"
            },
            "scope": {
              "query": "いいね"、
              "type": "nterm",
              "option": "and"
            }
          }
        }
      }
      

      例) exclusionクエリ

      {
        "search": {
          "body_sgmt": {
            "main": {
              "query": "検索"、
              "type": "nterm",
              "option": "and"
            },
            "exclusion": {
              "query": "ひどいね"、
              "type": "nterm",
              "option": "and"
            }
          }
        }
      }
      

      例) rerankクエリ

      {
        "search": {
          "body_sgmt": {
            "main": {
              "query": "検索"、
              "type": "nterm",
              "option": "and"
            },
            "rerank": {
              "query": "いいね"、
              "type": "simbst",
              "ratio": 0.7
            }
          }
        }
      }
      
    • クエリタイプ(type)別例
      例) onetermタイプ

      {
        "search": {
          "body_sgmt": {
            "main": {
              "query": "検索"、
              "type": "oneterm"
            }
          }
        }
      }
      

      例) ntermタイプ

      {
        "search": {
          "title_sgmt": {
            "main": {
              "query": "検索がいいね"、
            }
          }
        }
      }
      

      例) nformタイプ

      {
        "search": {
          "body_sgmt": {
            "main": {
              "query": "検索がいいね"、
              "type": "nofm",
              "ratio": 0.7
            }
          }
        }
      }
      

      例) eboolタイプ

      {
        "search": {
          "body_sgmt": {
            "main": {
              "query": "検索 | いいね&やだね ! だめだね" 、
              "type": "ebool"
            }
          }
        }
      }
      

      例) simbstタイプ

      {
        "search": {
          "body_sgmt": {
            "main": {
              "query": "テスト"
            },
            "rerank": {
              "query": "検索"、
              "type": "simbst",
              "ratio": 0.7
            }
          }
        }
      }
      

      例) proxrankタイプ

      {
        "search": {
          "title_sgmt": {
            "main": {
              "query": "テスト"
            },
            "rerank": {
              "query": "検索"、
              "type": "proxrank",
              "option": "exprox"
            }
          }
        }
      }
      

      例) nullタイプ

      {
        "search": {
          "body_sgmt": {
            "main": {
              "type": "null"
            }
          }
        }
      }
      
    • 複数のインデックスを検索する例
      例) mainクエリ

      {
        "search": {
          "Index_A": {
            "main": [{
              "query": "a"
            },{
              "query": "b"
            }]
          },
          "Index_B": {
            "main": {
              "query": "c"
            }
          }
        }
      }
      

      例) mainクエリ + intersectionクエリ

      {
         "search": {
           "Index_A": {
             "main": {
               "query": "a"
             }
           },
           "Index_B": {
             "main": {
               "query": "b"
             }
           },
           "Index_C": {
             "intersection": {
               "query" : "c"
             }
           }
         }
      }
      

      例) mainクエリ + exclusionクエリ

      {
          "search": {
           "Index_A": {
             "main": {
               "query": "a"
             }
           },
           "Index_B": {
             "main": {
               "query": "b"
             }
           },
           "Index_C": {
             "exclusion": {
               "query" : "c"
             }
           }
         }
      }
      

    sort

    検索結果のソート基準を設定するフィールドです。入力形式は、次の通りです。

    {
      "sort": {
        "[sort_target]": [sort_option](string)
      }
    }
    
    • [sort_target]: ソート基準を指定
      • 文書プロパティまたはランキングモジュールの変数入力
    • [sort_option]: ソート方式を指定
      • asc: 昇順
      • desc: 降順

    例)

    {
      "search": {
        "body_sgmt": {
          "main": {
            "query": "検索"、
          }
        }
      },
      "sort": {
        "dp_pubdate": "desc"
      }
    }
    

    scope

    検索対象および結果を制限する制限検索のためのフィールドです。入力形式は、次の通りです。

    {
      "scope": {
        "[scope_target]": {
          "[scope_method]": (string|int|double|array)
        }
      }
    }
    
    • [scope_target]: 制限検索対象を指定
      • 文書プロパティまたはランキングモジュールの変数入力
    • [scope_method]: 制限検索方法を選択
      • exist/nexist: 指定文書プロパティに指定した値が存在する/存在しない文書に検索結果を制限します。
      • range/nrange: 指定文書プロパティに指定した範囲の値が存在する/存在しない文書に検索結果を制限します。
        • gte:lte方式で適用されます。例) "nrange": [1, 1000] 入力時に指定プロパティ値が1以上1000以下の文書は除く
      • gtegtltelt: 指定文書プロパティに指定した範囲の値が存在する文書に検索結果を制限します(gte: 大きいか等しい、gt: 大きい、lte: 小さいか等しい、lt: 小さい)。
        • 日付値を指定した範囲に検索するには Longタイプの timestamp形式に変換して使用します。
      • bit/nbit: 指定したビットの値と文書プロパティを演算して、真/偽の場合の文書に検索結果を制限します。
      • bitmask: 指定したビットの値と文書プロパティを bitmask演算して、真の場合の文書に検索結果を制限します。
      • contains/ncontains : マルチタイプ(muint32、muint64、mstringなど)の文書プロパティを対象に、指定文書プロパティに指定した値を含む/含まない文書に検索結果を制限します。

    制限検索方法別 scopeフィールドの作成例は、次の通りです。
    例) existnexist

    {
      "search": {
        "body_sgmt": {
          "main": {
            "query": "検索"、
          }
        }
      },
      "scope": {
        "dp_docprop1": {
          "exist": 1,
          "nexist": [1,2,3,4,5],
        },
        "dp_docprop2": {
          "nexist": 5
        }
      }
    }
    

    例) rangenrange

    {
      "search": {
        "body_sgmt": {
          "main": {
            "query": "検索"、
          }
        }
      },
      "scope": {
        "dp_docprop1": {
          "range": ["1", "10"],
          "nrange": ["1", "10"]
        },
        "dp_docprop2": {
          "range": ["2", "5"]
        }
      }
    }
    

    例) gtegteltelt

    {
      "search": {
        "body_sgmt": {
          "main": {
            "query": "検索"、
          }
        }
      },
      "scope": {
        "dp_docprop": {
          "gte": "0",
          "gt": "0",
    	  "lte": "1",
    	  "lt": "1"
        }
      }
    }
    

    例) bitnbitbitmask

    {
      "search": {
        "body_sgmt": {
          "main": {
            "query": "検索"、
          }
        }
      },
      "scope": {
        "dp_docprop": {
          "bit": "11110000",
          "nbit": "10101010",
          "bitmask": "11110000"
        }
      }
    }
    

    例) containsncontains

    {
      "search": {
        "body_sgmt": {
          "main": {
            "query": "検索"、
          }
        }
      },
      "scope": {
        "dp_multi_docprop": {
          "contains": [1,2,3],
          // "contains" : "1,2,3",      
          "ncontains": [4,5,6]
          // "not contain" : "4,5,6",
        }
      }
    }
    

    key_scope

    文書の key(メインセクション)を基準に、検索対象および結果を制限する key制限検索をするためのフィールドです。入力形式は、次の通りです。

    {
      "key_scope": {
        "[key_scope_method]": (string|array)
      }
    }
    
    • [key_scope_method]: 文書 keyの制限検索方法を選択
      • exist/nexist: 指定した文書 keyに該当する/該当しない文書に検索結果を制限します。

    例)

    {
      "search": {
        "body_sgmt": {
          "main": {
            "query": "検索"、
          }
        }
      },
      "key_scope": {
        "exist": "A017a75c_000000000001fca5990e8e04",
        "nexist": ["A017a75c_000000000001fca5990e8e10", "A017a75c_000000000001fca5990e8e20"]
      }
    }
    

    user_scope

    フィールドにユーザーが直接 scope数式を入力して制限検索を行うことができます。入力形式は、次の通りです。

    {
      "user_scope": (string)
    }
    
    • user_scope: ランキングコード形式の scope数式を入力
      • 入力された数式は検索時にscopeパラメータの内容と AND条件が適用されます。

    例1)

    {
      "search": {
        "body_sgmt": {
          "main": {
            "query": "検索"、
          }
        }
      },
      "user_scope": "(dp_like_cnt => 100) and (dp_like_cnt <= 600)"
    }
    

    例2)

    {
      "search": {
        "body_sgmt": {
          "main": {
            "query": "検索"、
          }
        }
      },
      "user_scope": "(dp_grade == 1) or (dp_grade == 2)"
    }
    

    highlighting

    検索クエリに対する構文強調設定のためのフィールドです。入力形式は、次の通りです。

      "highlighting": {
        "enable": (string|bool),
        "pre_tag": (string),
        "post_tag": (string),
        "[highlighting_option]": (string|bool)
      }
    
    • enable: 強調有無を選択(デフォルト値: true)
    • pre_tagpost_tag: 検索結果とマッチしたタームを強調する構文強調タグを指定
      • 指定しないと、デフォルトで<b>、</b>が使用されます。
    • highlighting_option: 構文強調オプションを指定(デフォルト値: false)
      • remove_html_tag: 有効化すると、HTMLタグを削除します。
      • skip_html_tag: 有効化すると、HTMLタグを強調するか、タグに含まれている文字を変形せずにそのまま維持します。
      • braket_as_tag: 有効化すると、「<」と「>」の間はすべて HTMLタグとみなします。
      • num_entity_as_char: 有効化すると、「가」といった数字型エンティティを文字のように取り扱います。
        • 強調処理も当該エンティティを文字として取り扱って処理します。
      • skip_char_entity: 有効化すると、数字型エンティティを強調するか、含まれている文字を変形せずにそのまま維持します。
      • kata_to_hira: 有効化すると、互いに対応する日本語のカタカナとひらがなを同じ文字として取り扱います。
      • bold_sub_query: 有効化すると、クエリと正確に一致する文字列が検索されても部分キーワードをすべて強調します。
      • bold_sub_english: 有効化すると、英単語の一部がタームと一致する場合も強調します。
        例) タームが「a」の場合、「about」の頭文字の「a」を強調します。
      • bold_sub_digit: 有効化すると、数字の一部がタームと一致する場合も強調します。
        例) タームが「1」の場合、「12345」の最初の数字の「1」を強調します。
      • bold_sub_hanja: 有効化すると、漢字も強調します。

    例)

    {
      "search": {
        "body_sgmt": {
          "main": {
            "query": "検索"、
          }
        }
      },
      "highlighting": {
        "enable": true,
        "pre_tag": "<b>",
        "post_tag": "</b>",
        "remove_html_tag": true,
        "skip_html_tag": true,
        "num_entity_as_char": false,
        "braket_as_tag": false,
        "skip_char_entity": true,
        "kata_to_hira": false,
        "bold_sub_query": false,
        "bold_sub_english": true,
        "bold_sub_digit": true,
        "bold_sub_hanja": false,
      }
    }
    

    display_section

    検索結果に表示するセクションと表示方法を指定するフィールドです。

    • 当該フィールドを指定しないと、全体セクションの結果を表示します。
    • セクションを指定すると、選択したセクションの情報のみ表示します。

    入力形式は、次の通りです。

    {
      "display_section": (string|array),
    }
    
    • display_section: 検索結果に表示するセクションを指定して、複数セクションの組み合わせ可能
      例) 価格と名前のみ結果として出力したい場合: "price, name"を入力
      例) ブランドと名前を1つの結果として出力したい場合: "brand+name"を入力

    例)

    {
      "search": {
        "body_sgmt": {
          "main": {
            "query": "検索"、
          }
        }
      },
      "display_section": ["TITLE","BODY","CONTENTS","TITLE+BODY"],
      "display_section": "TITLE,BODY,CONTENTS,TITLE+BODY"
    }
    

    passage

    検索結果を抽出する方法を指定するフィールドです。

    • 当該フィールドを指定しないと、全体セクションの結果を読み取ります。
    • セクションを指定すると、選択したセクションの結果のみ読み取ります。

    入力形式は、次の通りです。

    {
      "passage": {
        "[section_name]": {
           "passage_type": (string),
           "passage_option": (string),
           "max_length": (string|int)
        }
      }
    }
    
    • [section_name]: セクション名を指定して、複数セクションの組み合わせ可能 例) TITLE+BODY
    • passage_type: passage抽出方法を指定
      • none: セクションの前の部分から読み取ります。
      • classic: セクションでクエリインデックスキーワードの周辺を読み取ります。
    • passage_option: passage抽出オプションを指定
    • max_length: passage抽出長さを指定

    例)

    {
      "search": {
        "body_sgmt": {
          "main": {
            "query": "検索"、
          }
        }
      },
      "passage": {
        "TITLE": {
           "passage_type": "classic",
           "passage_option": "mspcnt=1;rmtag=on;",
           "max_length": 400
        },
        "TITLE+BODY": {
           "passage_type": "classic",
           "passage_option": "mspcnt=1;rmtag=on;",
           "max_length": 500
        }
      }
    }
    

    aggregate

    要約検索のためのフィールドです。検索された文書の指定されたプロパティ値を演算して基準プロパティ別に演算結果を表示します。入力形式は、次の通りです。

    {
      "aggregate": {
        "[docprop_name]": {
          "max": (string),
          "min": (string),
          "one": (string),
          "sum": (string)
        }
      }
    }
    
    • [docprop_name]: 要約検索の基準になる文書プロパティを指定
    • max: 要約検索の max演算対象を指定
    • min: 要約検索の min演算対象を指定
    • one: 要約検索の one演算対象を指定
    • sum: 要約検索の sum演算対象を指定
      • 「_1」キーワードを使用する場合は、要約された結果の数を取得します。

    例) Cloud Searchのユースケースで自動車タイプ(dp_type)別自動車数および価格(dp_price)の最小値を検索

    {
      "aggregate": {
        "dp_type": {
          "sum": "_1",
          "min": "dp_price"
        }
      }
    }
    

    例)

    {
      "search": {
        "body_sgmt": {
          "main": {
            "query": "検索"、
          }
        }
      },
      "aggregate": {
        "dp_like_cnt": {
          "max": ["dp_like_cnt", "dp_dislike_cnt"],
          "min": ["dp_like_cnt", "dp_disklike_cnt"],
          "one": "dp_like_cnt",
          "sum": "_1"
        }
      }
    }
    

    ranking

    ランキングを指定するフィールドです。登録されたランキングモジュール名を入力するか、ランキングコードを直接入力します。入力形式は、次の通りです。

    {
      "ranking": {
        "name": (string),
        "code": (string),
        "override_value": {
            "[ranking_value]" : (string|int|float)
        }
      }
    }
    

    例) 登録されたランキングモジュール(clous)を選択して検索

    {
      "search": {
        "body_sgmt": {
          "main": {
            "query": "検索"、
          }
        }
      },
      "ranking": {
        "name": "clous"
      }
    }
    

    例) ランキングコードを直接入力して検索

    {
      "search": {
        "body_sgmt": {
          "main": {
            "query": "検索"、
          }
        }
      },
      "ranking": {
        "code": "overridable quality = 0.5; _relevance = 0.3 * qds + 0.7 * quality;",
        "override_value": {
            "quality": 1.0
        }
      }
    }
    

    result_processing

    検索結果の後処理を設定するフィールドです。入力形式は、次の通りです。

    {
      "result_processing": {
        "[section_name]": {
          "[result_processing_method]": (string|bool)
        }
      }
    }
    
    • [section_name]: セクションを指定
    • [result_processing_method]: 後処理方式を指定
      • remove_duplicate: passage重複を削除

    例)

    {
      "search": {
        "body_sgmt": {
          "main": {
            "query": "検索"、
          }
        }
      },
      "result_processing": {
        "BODY": {
          "remove_duplicate": true
        }
      }
    }
    

    setting

    検索時にその他の環境を設定できます。入力形式は、次の通りです。

    {
      "setting": {
        "search_timeout": (string|int),
        "ranking_value": (string|bool),
        "reuse_term_extractor": (string|bool),
        "log_level": (string|list),
      }
    }
    
    • search_timeout: 検索リクエストのタイムアウト値を指定
    • ranking_value: 結果にランキング変数値の表示有無を指定
    • reuse_term_extractor: searchフィールドのterm_extractorオプションで作成したターム解析ツールをサーバに保存するか否かを指定(デフォルト値: false)
      • true: term_extractorオプションを通じてランタイムに作成したターム解析ツールを次のリクエストにも使用できるようにサーバに保存します(計50個まで保存)。
      • false: term_extractorオプションを通じてランタイムに作成したターム解析ツールを1度使ってから捨てます。
      • 当該オプションは検索結果に影響を与えず、パフォーマンスに影響を与えます。
        • term_extractorオプションを使用して検索クエリを作成する予定であれば、実際のトラフィックを取得する前に必ず当該オプションをオンにします。
        • テストを行う際は、ターム解析ツールの数が最大数字(50個)を超えることがあるので、オプションを無効化した状態でテストを行うことをお勧めします。

    例)

    {
      "setting": {
        "search_timeout": 30,
        "ranking_value": true,
        "reuse_term_extractor": true
      }
    }
    

    URIに入力

    検索クエリを URLに入力して APIを呼び出します。

    • JSONPath形式のクエリ文字列パラメータ形式で入力します。
    • メソッドは HTTP GETを選択します。
    • Request Bodyの形式をそのまま適用して使用できます。
    参考

    ここでは、検索クエリを URIに入力する際の入力形式とその例を案内します。各フィールドおよび設定値の詳細はリクエストボディに入力のサブ内容をご参照ください。

    start

    表示する検索結果のスタートランキングを選択します。デフォルト値は1で入力形式は、次の通りです。

    ?start=(string)
    

    例)

    ?start=1
    

    display

    表示する検索結果の件数を選択します。デフォルト値は20で入力形式は、次の通りです。

    ?display=(string)
    

    例)

    ?display=20
    

    result_format

    検索結果の形式を指定します。デフォルト値は jsonで入力形式は、次の通りです。

    ?result_format=(string)
    

    例)

    ?result_format=json
    

    search

    検索のためのパラメータで、必須パラメータです。入力形式は、次の通りです。

    ?search.[index_name].[query_method].query=(string)
    ?search.[index_name].[query_method].type=(string)
    ?search.[index_name].[query_method].option=(string)
    ?search.[index_name].[query_method].ratio=(string)
    ?search.[index_name].[query_method].term_extractor=(string)
    

    例)

    ?search.body_sgmt.main.query=検索&search.body_sgmt.main.type=nterm&search.body_sgmt.main.option=and
    

    sort

    検索結果のソート基準を設定するパラメータです。入力形式は、次の通りです。

    ?sort.[sort_target]=[sort_option]
    

    例)

    ?sort.relevance=desc
    

    scope

    検索対象および結果を制限する制限検索のためのパラメータです。入力形式は、次の通りです。

    ?scope.[scope_target].[scope_method]=(string)
    

    例)

    ?scope.dp_grade.exist=1
    ?scope.dp_pubdate.range=180403,180410
    ?scope.dp_price.gte=777
    

    key_scope

    文書の key(メインセクション)を基準に、検索対象および結果を制限する key制限検索をするためのパラメータです。入力形式は、次の通りです。

    ?key_scope.[key_scope_method]=(string)
    

    例)

    ?key_scope.exist=gdid_000000001
    ?key_scope.nexist=gdid_00000010
    

    user_scope

    ユーザーが直接 scope数式を入力して制限検索を行うことができます。入力形式は、次の通りです。

    ?user_scope=(string)
    

    例)

    ?user_scope=(dp_price > 400)
    ?user_scope=(dp_price >= 400) and (dp_price < 1000)
    ?user_scope=(dp_grade == 1) and (dp_grade == 2)
    

    highlighting

    検索クエリに対する構文強調設定のためのパラメータです。入力形式は、次の通りです。

    ?highlighting.enable=(string)
    ?highlighting.pre_tag=(string)
    ?highlighting.post_tag=(string)
    ?highlighting.[highlighting_option]=(string)
    

    例)

    ?highlighting.enable=true
    ?highlighting.pre_tag=<b>&highlighting.post_tag=</b>
    ?highlighting.bold_sub_digit=true
    

    display_section

    検索結果に表示するセクションと表示方法を指定するパラメータです。

    • 当該パラメータを指定しないと、全体セクションの結果を表示します。
    • セクションを指定すると、選択したセクションの情報のみ表示します。

    入力形式は、次の通りです。

    ?display_section=(string)
    

    例)

    ?display_section=BODY:TITLE
    

    passage

    検索結果を抽出する方法を指定するパラメータです。

    • 当該パラメータを指定しないと、全体セクションの結果を読み取ります。
    • セクションを指定すると、選択したセクションの結果のみ読み取ります。

    入力形式は、次の通りです。

    ?passage.[section_name].passage_type=(string)
    ?passage.[section_name].passage_option=(string)
    ?passage.[section_name].max_length=(string)
    

    例)

    ?passage.BODY.passage_type=classic
    ?passage.BODY.passage_option=mspcnt=1;rmtag=on;
    ?passage.BODY.max_length=400
    

    aggregate

    要約検索のためのパラメータです。検索された文書の指定したフィールドを指定した演算で実行した結果を表示します。入力形式は、次の通りです。

    ?aggregate.[docprop_name].max=(string)
    ?aggregate.[docprop_name].min=(string)
    ?aggregate.[docprop_name].one=(string)
    ?aggregate.[docprop_name].sum=(string)
    

    例)

    ?aggregate.dp_like_cnt.max=dp_like_cnt,dp_dislike_cnt
    ?aggregate.dp_like_cnt.min=dp_like_cnt,dp_type
    ?aggregate.dp_like_cnt.sum=_1
    

    ranking

    ランキングを指定するパラメータです。登録されたランキングモジュール名を入力するか、ランキングコードを直接入力します。入力形式は、次の通りです。

    ?ranking.name=(string)
    ?ranking.code=(string)
    ?ranking.override_value.[ranking_value]=(string)
    

    例)

    ?ranking.name=clous
    ?ranking.code=relevance = qds * 0.1;
    ?ranking.override_value.[ranking_value]=10.123
    

    result_processing

    検索結果の後処理を指定するパラメータです。入力形式は、次の通りです。

    ?result_processing.[section_name].[result_processing_method]=(string)
    

    例)

    ?result_processing.TITLE.remove_duplicate=true
    

    setting

    検索時にその他の環境を設定できます。入力形式は、次の通りです。

    ?setting.transfer_timeout=(string)
    ?setting.search_timeout=(string)
    ?setting.use_df=(string)
    ?setting.reuse_term_extractor=(string)
    

    例)

    ?setting.transfer_timeout=30
    ?setting.search_timeout=30
    ?setting.use_df=true
    ?setting.reuse_term_extractor=true
    

    この記事は役に立ちましたか?

    Changing your password will log you out immediately. Use the new password to log back in.
    First name must have atleast 2 characters. Numbers and special characters are not allowed.
    Last name must have atleast 1 characters. Numbers and special characters are not allowed.
    Enter a valid email
    Enter a valid password
    Your profile has been successfully updated.