Required parameters: resource-type and search-param.
POST /rpc
method: aidbox.index/suggest-index
params:
resource-type: <resourceType>
search-param: <searchParameter>
Example:
POST /rpc
method: aidbox.index/suggest-index
params:
resource-type: Observation
search-param: date
Result:
result:
- index-name: observation_date_param_knife_date_min_tstz
name: date
resource-type: Observation
statement: >-
CREATE INDEX CONCURRENTLY IF NOT EXISTS
"observation_date_param_knife_date_min_tstz" ON "observation" USING btree
((knife_extract_min_timestamptz("observation".resource,
'[["effective","Period","start"],["effective","Period","end"],["effective","dateTime"],["effective","Timing","event"],["effective","instant"]]'))
)
subtypes:
- null
- eq
- ne
- lt
- le
- btw
type: date
- index-name: observation_date_param_knife_date_max_tstz
name: date
resource-type: Observation
statement: >-
CREATE INDEX CONCURRENTLY IF NOT EXISTS
"observation_date_param_knife_date_max_tstz" ON "observation" USING btree
((knife_extract_max_timestamptz("observation".resource,
'[["effective","Period","start"],["effective","Period","end"],["effective","dateTime"],["effective","Timing","event"],["effective","instant"]]'))
)
subtypes:
- null
- eq
- ne
- gt
- ge
- btw
type: date
Suggested two indexes: first one to search using lt, le and eq prefixes, second one to search usinggt, ge, eq prefixes.
aidbox.index/suggest-index-query
You can get all indexes for specific query using suggest-index-query.
Required parameters: resource-type and query.
POST /rpc
method: aidbox.index/suggest-index-query
params:
resource-type: <resourceType>
query: <query>
Example:
POST /rpc
method: aidbox.index/suggest-index-query
params:
resource-type: Observation
query: date=gt2022-01-01&_id=myid
Response:
result:
- index-name: observation_date_param_knife_date_min_tstz
name: date
resource-type: Observation
statement: >-
CREATE INDEX CONCURRENTLY IF NOT EXISTS
"observation_date_param_knife_date_min_tstz" ON "observation" USING btree
((knife_extract_min_timestamptz("observation".resource,
'[["effective","Period","start"],["effective","Period","end"],["effective","dateTime"],["effective","Timing","event"],["effective","instant"]]'))
)
subtypes:
- null
- eq
- ne
- lt
- le
- btw
type: date
- index-name: observation_date_param_knife_date_max_tstz
name: date
resource-type: Observation
statement: >-
CREATE INDEX CONCURRENTLY IF NOT EXISTS
"observation_date_param_knife_date_max_tstz" ON "observation" USING btree
((knife_extract_max_timestamptz("observation".resource,
'[["effective","Period","start"],["effective","Period","end"],["effective","dateTime"],["effective","Timing","event"],["effective","instant"]]'))
)
subtypes:
- null
- eq
- ne
- gt
- ge
- btw
type: date
- index-name: observation_resource_id
name: id
resource-type: Observation
statement: >-
CREATE INDEX CONCURRENTLY IF NOT EXISTS "observation_resource_id" ON
"observation" USING btree (("observation".id) )
subtypes:
- in
- null
type: id
Suggested indexes will increase performance of Observation.date and Observation._id.