Skip to content
ldegen edited this page Dec 17, 2016 · 2 revisions

Welcome to the irma wiki!

Irma is

  • a tool for creating simple APIs to filter/search documents in an elasticsearch index
  • a small server to host client code and other static assets.

Filter and Search documents.

Elasticsearch is very flexible and it needs to have a very powerful and expressive query language. A single applications, however, will typically only use a small subset of all that expressive power.

Irma is very opinionated about how applications should do search:

  • There should be some kind of full-text search.
  • There should be a set of facets to filter documents on.

Search

When the end-user gives us a list of search terms (white-space separated... things) we assume that she only wants to see documents that contain each of the terms somewhere. (This is subject to change, see Issue #5 )

Filter

We assume that the existing facets and their respective foci are presented in some way to the end-user. When the end-user selects one or more foci from one particular facet, we assume that she only wants to see results that contain at least one of that foci. All other facets are ignored.

API

Both, search and filter are done in a single request to /{document type}/search. Example:

GET /{document type}/search?q=some+search+terms&category=1,5,42&color=red,blue

The result would contain documents that

  • contain the words "some", "search" and "terms"
  • and belong to category 1, 5 or 42
  • and have the color red or blue

Clone this wiki locally