layout: doc_page

Search Queries

A search query returns dimension values that match the search specification.

{
  "queryType": "search",
  "dataSource": "sample_datasource",
  "granularity": "day",
  "searchDimensions": [
    "dim1",
    "dim2"
  ],
  "query": {
    "type": "insensitive_contains",
    "value": "Ke"
  },
  "sort" : {
    "type": "lexicographic"
  },
  "intervals": [
    "2013-01-01T00:00:00.000/2013-01-03T00:00:00.000"
  ]
}

There are several main parts to a search query:

propertydescriptionrequired?
queryTypeThis String should always be “search”; this is the first thing Druid looks at to figure out how to interpret the queryyes
dataSourceA String defining the data source to query, very similar to a table in a relational databaseyes
granularityDefines the granularity of the query. See Granularitiesyes
filterSee Filtersno
intervalsA JSON Object representing ISO-8601 Intervals. This defines the time ranges to run the query over.yes
searchDimensionsThe dimensions to run the search over. Excluding this means the search is run over all dimensions.no
querySee SearchQuerySpec.yes
sortHow the results of the search should be sorted. Two possible types here are “lexicographic” and “strlen”.yes
contextAn additional JSON Object which can be used to specify certain flags.no

The format of the result is:

[
  {
    "timestamp": "2012-01-01T00:00:00.000Z",
    "result": [
      {
        "dimension": "dim1",
        "value": "Ke$ha"
      },
      {
        "dimension": "dim2",
        "value": "Ke$haForPresident"
      }
    ]
  },
  {
    "timestamp": "2012-01-02T00:00:00.000Z",
    "result": [
      {
        "dimension": "dim1",
        "value": "SomethingThatContainsKe"
      },
      {
        "dimension": "dim2",
        "value": "SomethingElseThatContainsKe"
      }
    ]
  }
]