Query API

You can call any defined query pipeline directly. Here, you need to provide at least a query and normally an Authorization header, unless the query pipeline’s access configuration is set to public without protection.

For example

{
  "query":"how does the retrieval suite work?"
}

which you issue to

https://<yourdeployment>/api/v1/querypipelines/search?queryPipelineId=<pipelineId>

You can furthermore add synonyms, filters and sorting to your query. Please find the full Open API specification below.

Open API Description

openapi: 3.0.4
info:
  title: RheinInsights Query API
  description: |-
   This is the RheinInsights query API. 
  version: 1.0.0
externalDocs:
  description: RheinInsights Documentation
  url: https://www.rheininsights.com/documentation/index.php
servers:
  - url: https://yourdeployment
security:
  - bearerAuth: [] 
paths:
  /api/v1/querypipelines/search:
    post:
      summary: Call a query  pipeline
      description: Executes a given query pipeline and returns the result of the computation
      parameters:
        - name: queryPipelineId
          in: query
          description: The id of the query pipeline. This is the id shown in the admin interface
          required: true
          explode: false
          schema:
            type: integer
      requestBody:
        description: Provide the search query and filters
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/query'
        required: true
      responses:
        '200':
          description: Successful operation
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/result'
        '400':
          description: Invalid input
        '429':
          description: Too many requests
        '500':
          description: Internal server error
        '501':
          description: Unauthenticated
components:
  securitySchemes:
    bearerAuth: 
      type: http
      scheme: bearer
      bearerFormat: JWT 
  schemas:
    query:
      required:
        - query
        - start
      type: object
      properties:
        query:
          type: string
          example: "How does the Retrieval Suite Work?"
        synonymQuery:
          type: string
          example: "work OR function OR behave"
        start:
          type: integer
          example: 0
        sorting:
          type: object
          properties:
            direction: 
              type: string
              enum:
                - DESC
                - ASC
            fieldname: 
              type: string
              description: the field name to sort for 
        activeFilters:
          type: array
          items:
            type: object
            properties:
              method: 
                type: string
                enum:
                  - EXCLUDE
                  - INCLUDE
              operator: 
                type: string
                enum:
                  - AND
                  - OR
              fieldname: 
                type: string
                description: the field name to filter upon
              keys: 
                type: array
                items:
                  type: string
                  description: possible values in this field to filter on
        status:
          type: string
          description: pet status in the store
          enum:
            - available
            - pending
            - sold
    result:
      type: object
      properties:
        totalHits:
          type: integer
          format: int32
          example: 10
        queryDelay:
          type: integer
          format: int64
          example: 10
        hasMoreResults:
          type: boolean
          example: true
        results:
          type: array
          items:
            type: object
            properties:
              id: 
                type: string
              url: 
                type: string
              teaser: 
                type: string
              body: 
                type: string
              score: 
                type: number
              metadata: 
                type: object
                additionalProperties:
                  type: array
                  items:
                    type: string
        filters:
          type: array
          items:
            type: object
            properties:
              fieldName: 
                type: string
              filterBuckets: 
                type: object
                properties:
                  key: 
                    type: string
                  label:
                    type: string
                  token: 
                    type: string
                  count: 
                    type: integer
                  isActive: 
                    type: boolean
                  originalFieldNames: 
                    type: object
                    additionalProperties:
                      type: object
                      properties:
                        fieldName:
                          type: integer
                        token:
                          type: string
                        lowerValue:
                          type: string
                        upperValue:
                          type: string
                        key:
                          type: string