Fusion Server

Version 4.1
How To
Documentation
    Learn More

      Query Stages API

      Table of Contents

      The Query Stages API provides endpoints to:

      • List query stage configuration properties

      • Manage query stage instances

      • Test processing on a set of queries

      Examples

      See all defined query pipeline stages, regardless of type:

      REQUEST

      curl -u user:pass http://fusion-host:8764/api/query-stages/instances

      RESPONSE

      [{
        "type" : "query-logging",
        "id" : "detailed-logging",
        "detailed" : true,
        "skip" : false,
        "label" : "detailed-query-logging",
      }]

      Add a new query stage:

      REQUEST

      curl -u user:pass -X POST -H 'Content-type: application/json' -d'{ "type" : "query-logging", "id" : "detailed-logging", "detailed" : true }' http://fusion-host:8764/api/query-stages/instances

      RESPONSE

       {
        "type" : "query-logging",
        "id" : "detailed-logging",
        "detailed" : true,
        "skip" : false,
        "label" : "query-logging"
      }

      Update a query stage:

      REQUEST

      curl -u user:pass -X PUT -H 'Content-type: application/json' -d'{ "type" : "query-logging", "id" : "detailed-logging", "detailed" : true, "label" : "detailed-query-logging" }' http://fusion-host:8764/api/query-stages/instances/detailed-logging

      RESPONSE

      {
        "type" : "query-logging",
        "id" : "detailed-logging",
        "detailed" : true,
        "skip" : false,
        "label" : "detailed-query-logging",
      }

      Note that all required elements must be included in the update.

      Delete a query stage:

      REQUEST

      curl -u user:pass -X DELETE http://fusion-host:8764/api/query-stages/instances/detailed-logging

      No response is returned. To check that the stage is no longer defined, list all query stage instances.

      Test that a set-params stage defines properties correctly:

      REQUEST

      curl -u user:pass -X POST -H 'Content-type: application/json' -d '{"type":"set-params", "params":[{"key":"rows", "value":"2", "policy":"append"}]}' http://fusion-host:8764/api/query-stages/solr/test?q=*:*

      RESPONSE

      {
        "request" : {
          "headers" : {
            "User-Agent" : [ "curl/7.30.0" ],
            "Content-Type" : [ "application/json" ],
            "Accept" : [ "*/*" ],
            "Host" : [ "fusion-host:{api-port}" ],
            "Content-Length" : [ "80" ]
          },
          "params" : {
            "q" : [ "*:*" ],
            "rows" : [ "2" ]
          }
        },
        "response" : null,
        "totalTime" : 0
      }

      Get the properties for the "apply-defaults" type:

      REQUEST

      curl -u user:pass http://fusion-host:8764/api/query-stages/schema/set-params

      RESPONSE

      {
        "type" : "object",
        "title" : "Additional Query Parameters",
        "description" : "This stage allows you to set, append, and remove additional query parameters",
        "properties" : {
          "skip" : {
            "type" : "boolean",
            "title" : "Skip This Stage",
            "description" : "Set to true to skip this stage.",
            "default" : false,
            "hints" : [ "advanced" ]
          },
          "label" : {
            "type" : "string",
            "title" : "Label",
            "description" : "A unique label for this stage.",
            "hints" : [ "advanced" ],
            "maxLength" : 255
          },
          "condition" : {
            "type" : "string",
            "title" : "Condition",
            "description" : "Define a conditional script that must result in true or false. This can be used to determine if the stage should process or not.",
            "hints" : [ "code", "javascript", "advanced" ]
          },
          "params" : {
            "type" : "array",
            "title" : "Parameters and Values",
            "items" : {
              "type" : "object",
              "required" : [ "key" ],
              "properties" : {
                "key" : {
                  "type" : "string",
                  "title" : "Parameter Name"
                },
                "value" : {
                  "type" : "string",
                  "title" : "Parameter Value"
                },
                "policy" : {
                  "type" : "string",
                  "title" : "Update Policy",
                  "enum" : [ "replace", "append", "remove", "default" ],
                  "default" : "append"
                }
              }
            }
          }
        },
        "category" : "Advanced",
        "categoryPriority" : 2
      Loading API specification...