MENU
      Document management

        Document management


        Article summary

        Perform insert (indexing), update, upsert, delete requests for documents. All requests use the POST method, and Domain must be created before performing the request.

        • By default, insert/upsert requests are made for indexing when a document does not exist, a document has been changed, or the dictionary has been changed resulting in a change in indexing.
        • If update_time is specified, actual changes are approved only if it is the same as or more recent than the update_time of the existing document.
        • Use utf-8 for requests.
        • In a single request, insert/upsert/update/delete can be requested all at once.
        • Requests are processed sequentially. (Parallel processing internally without mixing primary keys)
        • Maximum number of documents for uploading at once is 1000/5 MB, and bulk uploads can be done through Object Storage Document management.
        • Must update the auto complete index through auto complete setting and modification request after this request when using the auto complete feature.
        POST https://cloudsearch.apigw.ntruss.com/CloudSearch/real/v1/domain/{name}/document/manage
        HTTP

        Requests

        Request parameters

        Parameter nameRequiredTypeService limitsDescription
        nameYesstringExisting Domain name

        Request bodies

        Field nameRequiredTypeService limitsDescription
        requests[]YesArrayDocument request list
        requests[].typeYesstringSelect one from insert, upsert, update, and deleteRequest type definition
        requests[].update_timeNostringyymmddHHMMSS.ssssss
        Example: 170807133300.000000
        Recommended to specify the time the document was changed in the request
        requests[].forceNobooltrue, falseProcess the request unconditionally without comparing changes with the already indexed document and update_time
        requests[].force_hashNobooltrue, falseIgnore changes with the already indexed document and process the request if the update_time is the same or newer compared to the existing document, based on the comparison of update_time only
        requests[].keyNo (Required when requesting update, delete)stringPrimary key of document
        requests[].contentNo (Required when requesting insert, upsert, and update)objectMust include the key corresponding to the main sectionDocument to use for request (Object in the form of a Map with section name as the key and the values mapped to the key as value)

        Responses

        Field nameTypeDescriptionNote
        request_idstringupdate_time value returned by indexeryymmddHHMMSS.ssssss
        Example: 170807133300.000000
        status.codenumberRequest status0: Succeeded, -1: Failed
        status.messagestringError message when failed
        total_document_countnumberNumber of individual requests included in the request

        Response status

        HTTP StatusDesc
        200OK (Request complete)
        200status.code: -1 (Request failed)
        400Bad Request
        401Unauthorized
        403Forbidden
        404Not Found
        500Internal Server Error

        Request type

        The primary key is the KEY section, and the requests with KEY as 1 are processed sequentially and since the requests with KEY as 1 and those with KEY as 2 are not related to each other, they are processed in parallel internally in the example below.

        insert/upsert/delete/update can be bundled in a single request, and requests[x].content key, value pairs are all composed of strings for requested JSON file. (If used as a numeric type in the search engine, it is internally converted from a string to a numeric type.)

        insert requests

        If the document exists, request for indexing if the document has been changed. If the document does not exist, request for indexing. Consider that the document has changed when the morphological analysis has changed due to the modification of the dictionary or the term/document weight has changed.

        When requesting indexing, it is a principle to provide the entire defined document in the content, however, if omitted except for the key defined as the primary key, an empty string is used.

        Section defined as primary key must be included in the content.

        {
           "requests" : [
              {
                 "type" : "insert",
                 "key": "1",
                 "content" :
                  {
                    "URL": "http://naver.com/bbs/abc.php?bo_table=QnA&wr_id=321651",
                    "KEY": "1",
                    "ROOT_ID": "732303375144529937",
                    "TITLE": "Testing JSONJSONJSONJSONJSONJSONJSONJSON.",
                    "DATE": "2012-01-01T00:00:00+0900",
                    "BODY_TEXT": "JSONJSONJSONJSONJSONJSONJSONJSON"
                  }
              }
          ]
        }
        JSON

        upsert requests

        If the requested document already exists, it merge with the existing document and then operates the same as an insert. If the requested document is a new document, it is simply indexed.

        primary key must be set in a separate key or must be included in the content.

        {
           "requests" : [
              {
                 "type" : "upsert",
                 "key" : "1",
                 "content" :
                  {
                    "URL": "http://naver.com/bbs/abc.php?bo_table=QnA&wr_id=321651",
                    "KEY": "1",
                    "ROOT_ID": "732303375144529937",
                    "TITLE": "Testing JSONJSONJSONJSONJSONJSONJSONJSON.",
                    "DATE": "2012-01-01T00:00:00+0900",
                    "BODY_TEXT": "JSONJSONJSONJSONJSONJSONJSONJSON"
                  }
              }
          ]
        }
        JSON

        update requests

        Partially update an existing document. If the requested document does not already exist, nothing happens.

        {
           "requests" : [
              {
                 "type" : "update",
                 "key" : "2",
                 "content" :
                  {
                    "ROOT_ID": "223",
                    "DATE": "2017-01-01T00:00:00+0900"
                  }
              }
          ]
        }
        JSON

        delete requests

        Delete requested document. If the requested document does not exist, nothing happens.

        {
           "requests" : [
              {
                 "type" : "delete",
                 "key" : "2"
              }
          ]
        }
        JSON

        Examples

        Request examples - insert

        POST https://cloudsearch.apigw.ntruss.com/CloudSearch/real/v1/domain/car_dev/document/manage
        
        POST /CloudSearch/real/v1/domain/car_dev/document/manage HTTP/1.1
        Host:cloudsearch.apigw.ntruss.com
        Content-Type: application/json
        x-ncp-apigw-signature-v2: cDwtHuQeGmwWyNmwlN6XIGA66zge4iMXvfoDQNna05g=
        x-ncp-apigw-timestamp: 1545817618751
        x-ncp-iam-access-key: teGTwtcSEGA7fu28BGGi
        
        {
          "requests": [
            {
              "type": "insert",
              "content": {
                "docid": "car-10001",
                "brand": "Hyundai",
                "name": "2018 Santa Fe",
                "color": "black",
                "price": "2817",
                "type": "Mid-size"
              }
            },
            {
              "type": "insert",
              "content": {
                "docid": "car-10002",
                "brand": "Hyundai",
                "name": "2018 Grandeur",
                "color": "white",
                "price": "2618"
              }
            }
            ]
        }
        HTTP

        Response examples (Common)

        {
          "result": "ok"
        }
        JSON

        Was this article helpful?

        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.