Document検索
    • PDF

    Document検索

    • PDF

    Article Summary

    インデックス別に作成したDocumentに対して検索を実行します。
    該当リクエストを実行する前にDomain作成及びDocument作成が必要です。

    • 検索サービス構成のためには検索基本知識が必要です。
    • サービスを作成する時に設定したSchemaで検索実行
    • JSON形式のqueryDSLを使用
    POST https://cloudsearch.apigw.ntruss.com/CloudSearch/real/v1/domain/{name}/document/search
    

    リクエスト

    リクエストパラメータ

    パラメータ名必須タイプ制約事項説明
    nameYesstring作成されているDomain名

    overview

    Search Queryに対する詳しい例題はCloud Search使用ガイド - Search Query使用ガイドをご参考ください。

    {
      "search": {
          "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),
                "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),
          }
        },
      "ip_str": (string)
    }
    

    リクエストボディ

    フィールド名必須タイプ制約事項説明
    startNoString, Integerdefault : 1検索結果の開始Ranking
    displayNoString, Integerdefault : 20検索結果の個数
    result_formatNoStringjson検索結果のフォーマット指定、現在はjsonフォーマットのみサポートします。
    index_nameYesString既存作成されたインデックス の中で選択検索するインデックス名
    queryListYesList<SearchQuery>SearchQuery.query_methodが"main"であるSearchQueryを必ず含む検索リクエストクエリ
    sortNoObject検索結果のソート基準を持つMap形式のObject
  • key : ソート基準セクション
  • value : ソート方式指定(desc, asc)
  • scopeNoList<SearchScope>制限検索設定リスト
    key_scopeNoObject制限検索を設定するMap形式のObject
  • key : 制限検索方式選択
  • value : 制限検索方式による値設定
  • keyオプション種類
  • - exist, nexist: 指定した値が存在するDocument属性で検索結果を制限します。
    user_scopeNoStringRankingコード形式の数式ユーザが直接scope数式を入力、入力された数式は'scope'パラメータの内容とand条件で追加されます。
  • ex) priceが 2000超過、5000未満であるDocumentを探す場合、"(dp_price > '2000') and (dp_price < '5000')"
  • highlightingNoSearchHighlightingDefault: true検索結果構文強調設定
    display_sectionNoString, Array既存作成したセクションの中で選択検索結果として見せるセクションを指定(指定しない場合、すべてのセクションデータ出力)
    例 : 価格と名称のみを結果として出力したい場合、 "price, name"
  • 多くのセクションの組み合わせ可能
    例 : ブランドと名称を一つの結果として出力したい場合、 "brand+name"
  • passageNoList<SearchPassage>検索結果抽出方式設定
    aggregateNoList<SearchAggregate>検索結果要約設定リスト
    result_processingNoSearchResultProcessing検索結果の後処理設定
    settingNoSearchSetting検索する時、その他環境設定
    ip_strNoStringIP type formatである必要がある。
    例 : 10.78.140.200

    レスポンス

    フィールド名タイプ説明備考
    typestringレスポンスタイプ
    versionstring
    statusnumberレスポンスステータス
    messagestringエラーメッセージレスポンス結果がエラーの場合出力
    time_zonestringタイムゾーン
    elapsed_timenumber検索する時にかかった時間
    termobject問い合わせ内容index_name及びSearhchQueryの内容がmappingされたobject
    resultobject検索結果
    result.startnumber検索結果の開始Rankingdefault : 1
    result.displaynumber検索結果の個数default : 20
    result.rankingstringRanking方式"clous"
    result.sort_bystringRanking基準default : "qds"
    result.total_countnumber全体検索結果
    result.removed_countnumber削除された検索結果
    result.item_countnumber検索結果数
    result.itemsArray検索されたDocumentDocument作成時に作成したrequest[].contentデータと検索情報を含むlist
    result.items[]._ranknumber検索Ranking
    result.items[]._keystringDocumentのprimary key
    result.items[]._qdsnumber検索queryと該当Documentの一致程度

    レスポンスStatus

    HTTP StatusDesc
    200OK(検索完了)
    200No collection founded, insert document please
    400Bad Request
    401Unauthorized
    401there is no such service
    403Forbidden
    404Not Found
    500Internal Server Error

    リクエスト例示

    例示で使われるDocumentは検索サービス作成例題と同じです。

    一般検索リクエスト例示(検索語"Hyundai")

    POST https://cloudsearch.apigw.ntruss.com/CloudSearch/real/v1/domain/car_dev/document/search
    
    POST /CloudSearch/real/v1/domain/car_dev/document/manage HTTP/1.1
    Host:cloudsearch.apigw.ntruss.com
    accept:application/json
    x-ncp-apigw-signature-v2: cDwtHuQeGmwWyNmwlN6XIGA66zge4iMXvfoDQNna05g=
    x-ncp-apigw-timestamp: 1545817618751
    x-ncp-iam-access-key: teGTwtcSEGA7fu28BGGi
    
    {
      "search": {
        "brand_name": {
          "main": {
            "query": "Hyundai"
          }
        }
      },
      "ip_str": "10.78.140.200"
    }
    

    レスポンス例示

    {
      "version": "1.3.0",
      "status": 200,
      "type": "response",
      "time_zone": "+09:00",
      "elapsed_time": 0.000521,
      "term": {
        "brand_name": {
          "main": {
            "term_count": 1,
            "term_list": [
              "Hyundai"
            ]
          }
        }
      },
      "result": {
        "start": 1,
        "display": 20,
        "ranking": "clous",
        "sort_by": "qds",
        "total_count": 2,
        "removed_count": 0,
        "item_count": 2,
        "items": [
          {
            "_rank": 1,
            "_key": "car-10001",
            "_qds": 0.8729686141014099,
            "brand": "<b>Hyundai</b>",
            "docid": "car-10001",
            "name": "2018 Santafe",
            "price": 2815,
            "type": "中型"
          },
          {
            "_rank": 2,
            "_key": "car-10002",
            "_qds": 0.8729686141014099,
            "brand": "<b>Hyundai</b>",
            "docid": "car-10002",
            "name": "2018 Grandure",
            "price": 2615,
            "type": "中型"
          }
        ]
      }
    }
    
    

    ストップワード検索 リクエスト例示(検索語"Hyundaiとchevrolet")

    ストップワード例示(rule name: "josa")

    {
      "type": "filter",
      "word_list": [
        "은", "는", "이", "가", "을", "를", "의", "와"
        
       // 上記の文字は韓国語の助詞と接続詞であり、その意味は以下のようである。
       // 은(は), 는(は), 이(が), 가(が), 을(を), 를(を), 의(の), 와(と)
       // もし、日本語の助詞と接続詞を活用するのであれば、上記の内容を以下の内容に入れ替えれば活用可能
       // "は", "が", "を", "の", "と"
          
      ]
    }
    

    検索語とマッチングされるすべての単語を探すためには "or" optionが必要です。

    POST https://cloudsearch.apigw.ntruss.com/CloudSearch/real/v1/domain/car_dev/document/search
    
    POST /CloudSearch/real/v1/domain/car_dev/document/manage HTTP/1.1
    Host:cloudsearch.apigw.ntruss.com
    accept:application/json
    x-ncp-apigw-signature-v2: cDwtHuQeGmwWyNmwlN6XIGA66zge4iMXvfoDQNna05g=
    x-ncp-apigw-timestamp: 1545817618751
    x-ncp-iam-access-key: teGTwtcSEGA7fu28BGGi
    
    {
      "search": {
        "brand_name": {
          "main": {
            "query": "Hyundaiとchevrolet",
            "option":"or",
            "stopword":"josa"
          }
        }
      }
    }
    

    レスポンス例示

    {
      "version": "1.3.0",
      "status": 200,
      "type": "response",
      "time_zone": "+09:00",
      "elapsed_time": 0.000517,
      "term": {
        "brand_name": {
          "main": {
            "term_count": 2,
            "term_list": [
              "chevrolet",
              "Hyundai"
            ]
          }
        }
      },
      "result": {
        "start": 1,
        "display": 20,
        "ranking": "clous",
        "sort_by": "qds",
        "total_count": 3,
        "removed_count": 0,
        "item_count": 3,
        "items": [
          {
            "_rank": 1,
            "_key": "car-10001",
            "_qds": 0.8729686141014099,
            "brand": "<b>Hyundai</b>",
            "docid": "car-10001",
            "name": "2018 Santafe",
            "price": 2815,
            "type": "中型"
          },
          {
            "_rank": 2,
            "_key": "car-10002",
            "_qds": 0.8729686141014099,
            "brand": "<b>Hyundai</b>",
            "docid": "car-10002",
            "name": "2018 Grandure",
            "price": 2615,
            "type": "中型"
          },
          {
            "_rank": 3,
            "_key": "car-3",
            "_qds": 0.8707408308982849,
            "brand": "<b>chevrolet</b>",
            "docid": "car-3",
            "name": "2018 Malibu",
            "price": 2388,
            "type": "中型"
          }
        ]
      }
    }
    

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

    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.