Search query
Advanced search query.
Overview
In URLs, query parameters are defined sets of parameters. By using them, you can define specific content or actions based on the data being passed.
A search query is used in Labii to limit the search results, apply filters, and integrate into many widgets.
Query format
A query contains the following parts:
Query expression
Here are list of supported expressions:
contains: Returns results that match the provided value, case sensitive.
not_contains: Returns results that does not match the provided value, case sensitive.
icontains: Returns results that match the provided value, regardless of case.
not_icontains: Returns results that does not match the provided value, regardless of case.
jcontains: Returns results that match the provided value with a JSON field.
not_jcontains: Returns results that does not match the provided value with a JSON field.
fpcontains: Returns results that match the provided value with a chemical fingerprint.
fpoverlaps: Returns results that match the provided value with a certain fingerprint coverage.
gt: Returns results that is greater than the provided value.
gte: Returns results that is greater than or equal to the provided value.
lt: Returns results that is less than the provided value.
lte: Returns results that is less than or equal to the provided value.
int: Convert the database value into integer
asdate: Convert the database value into a date object
asstring: Convert the database value into a string
ne: Returns results that does not equal to the provided value.
Multiple expressions can be chained together with "__":
Query by multiple fields
Use &
to connect the queries for multiple fields.
Filter in JSON objects
contains a string in value:
jsonfield__icontains=test
not contain a string in value:
jsonfield__not_contains=test
contains a key:
jsonfield__has_key=test
contains an object:
jsonfield__jcontains={'name':'test'}
not contains an object:
jsonfield__not_jcontains={'name':'test'}
Filter by a filter set:
filter__sid=xxx
, wherein a filter set:AND relationship shall be expressed in a JSON object, separate by a comma:
{"name__icontains":"test", "is_archived":false}
AND relationship expressed in JSON array: {
"and": [{"name__icontains":"test"}, {"is_archived":false}]}
OR relationship shall be expressed in an array:
{"or": [{"name__icontains":"test"}, {"is_archived":false}]}
Filter by multiple filter set:
AND:
filter__sid=xxx,xxx
OR:
filter__sid__in=xxx,xxx
Filter by json query, the query is same to the filter set:
jquery={a:1,b:2,c=3}
jquery={"or": [{sid:aa,data:bb}, {sid:aa,data:bb}]}
jquery={"and": [{sid:aa,data:bb}, {sid:aa,data:bb}]}
Since the database JSON field no longer supports the Array data. We have updated ["or", {sid:aa,data:bb}, {sid:aa,data:bb}] to {"or": [{sid:aa,data:bb}, {sid:aa,data:bb}]}
Examples
All unsigned experiments:
All unfinished experiments (Experiments in which at least one signer has not signed):
Sign but unfinished experiments (Signed experiments with at least one unsigned witnesses):
Last updated