The MOLGENIS REST query API makes use of RSQL. RSQL is a query language for parametrized filtering of entries in RESTful APIs. It’s based on FIQL (Feed Item Query Language), that was originally specified by Mark Nottingham as a language for querying Atom feeds. However the simplicity of RSQL and its capability to express complex queries in a compact and HTTP URI-friendly way makes it a good candidate for becoming a generic query language for searching REST endpoints.
MOLGENIS supports the following operators:
The query can be entered as value for the
qquery param in an API call, e.g.
/api/data/myTable?q=columnA==queryValueUse escaping where needed, i.e. both on the rsql level and using url encoding.
You can also query fields of referenced entities, using a dot to separate the attribute names:
columnA.columnB==queryValue. The maximum allowed depth of this search can be set in the "indexing depth" attribute of the entity type, in the Data Explorer.
Search is used to search text values for a query string. Search is case-insensitive. Search uses a tokenizer algorithm to split the text block and the search string into tokens and then looks for matching token sequences.
Same as search, except this uses the ElasticSearch simple query string syntax.
version=sq='1.2.* | 1.3.*'. The syntax is intended to be simple enough that you can let the user type queries into a search box.
You can perform a search across all fields of a document by specifying
*as column name:
Attributes of type ENUM, STRING, HYPERLINK, EMAIL are often not really text blocks that should be split into pieces but rather single keyword tokens. If you tag your attribute with the
tokentag, a search on that attribute becomes a case-insensitive equals. If you also tag your attribute with the
case-sensitivetag, the search becomes an equals. The search across all fields is not affected by the token tag on the attribute.
Like is used to find substrings in a text value. Like is case-insensitive. If you tag your attribute with the
case-sensitivetag, like becomes case-sensitive.
You can tag an attribute in EMX by adding the tags to the
tagscolumn of your attributes sheet, e.g.
case-sensitivetags are created for you.