Skip to content

GitLab

  • Menu
Projects Groups Snippets
    • Loading...
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in
  • A api
  • Project information
    • Project information
    • Activity
    • Members
  • Packages & Registries
    • Packages & Registries
    • Package Registry
    • Container Registry
    • Infrastructure Registry
  • Wiki
    • Wiki
  • Activity
Collapse sidebar
  • ironapi
  • api
  • Wiki
  • Api
  • Queries
  • Query Search Options

Query Search Options · Changes

Page history
restructure authored May 25, 2021 by Andrea Pavlovic's avatar Andrea Pavlovic
Show whitespace changes
Inline Side-by-side
API/Queries/Query-Search-Options.md 0 → 100644
View page @ 1ac51e9a
[[Queries]] [[Query-Examples]]
[TOC]
# NULL / NOT NULL
To search for (not) NULL entries, use the null value in json:
```JSON
#/data/extensions/widget/query
{ "conds" : {"me.query" : null }}
```
```JSON
#/data/extensions/widget/query
"conds" : {
"me.query" : {
"-not" : null
}
}
```
# IDENT - comparing two columns
```JSON
#/data/system/entity/query
{ "conds" : {"me.name" : {"-ident": "module.name"}} }
```
```SQL
WHERE ( me.name = module.name )
```
<http://search.cpan.org/~ilmari/SQL-Abstract-1.84/lib/SQL/Abstract.pm#-ident>
# LIKE and ILIKE
```JSON
#/data/system/entity/query
{ "conds" : {"me.name" : {"-like": "%a%"}} }
{ "conds" : {"me.name" : {"-not_like": "%a%"}} }
{ "conds" : {"me.name" : {"-ilike": "%a%"}} }
{ "conds" : {"me.name" : {"-not_ilike": "%a%"}} }
```
```SQL
WHERE ( me.name like ? )
WHERE ( me.name not like ? )
```
# (not) IN
```JSON
#/data/system/entity/query
{ "conds" : {"me.name" : {"-in": [1,2]}} }
{ "conds" : {"me.name" : {"-not_in": [3,4]}} }
```
```SQL
WHERE ( me.name in (?) )
WHERE ( me.name not in (?) )
```
# Regex
The regex operators (`~`, `!~`, `~*`, `!~*`) are supported:
```JSON
#/data/system/entity/query
"conds" : {"me.name" : {"~*": "module.name"}}
```
```SQL
WHERE ( me.name ~* ? )
```
If a column on a big table is not indexed correctly, this search option will not be allowed.
# Similarity
This is an extension for IronAPI.
```JSON
{"attrs" : {"order_by" : {"-similarity" : ["me.name","constant"]}, "columns" : "me.name"}}
```
This will be translated to sql `ORDER BY me.name <-> ? : "constant"`.
If a column on a big table is not indexed correctly, this search option will not be allowed.
# tsquery
This is an extension for IronAPI. The attrs are just for reference, they are not needed for the search query!
```JSON
#/data/system/entity/query
{
"conds" : {"-tsquery" : ["english","me.name","data"] },
"attrs" : {"+select" : "to_tsquery('english',me.name)", "+as" : "tsquery_name"}
}
```
will be translated to
```SQL
WHERE ( to_tsvector(?,me.name) @@ to_tsquery(?, ? ) ): 'english', 'english', 'data'
```
If a column on a big table is not indexed correctly, this search option will not be allowed.
\ No newline at end of file
Clone repository
  • API
    • Available Endpoints
    • Changing Passwords
    • Form Input Types
    • Introduction
    • Logout
    • Plugins
    • Queries
    • Queries
      • Attributes
      • Context
      • Query Examples
      • Query Search Options
      • Referenced Instances
      • Saved Queries
    • Schema_Changes
    • Storing Files
View All Pages