Query
Since GreptimeDB and Elasticsearch are designed for different purposes, many features are not compatible. We have provided corresponding alternatives as much as possible. For each specific interface, we will explain GreptimeDB's implementation and the differences from Elasticsearch.
All features related to boost scores are not supported.
The _id
field is not automatically added or maintained. If you need to use it, please include this field in your original data.
Using @timestamp as a time field is not supported.
It is not allowed to include both query and aggregation in the same request.
Query Syntax
match
In GreptimeDB, the match
query is used to match one or more terms in a text field.
The following options are not supported: analyzer, auto_generate_synonyms_phrase_query, fuzziness, max_expansions, prefix_length, fuzzy_transpositions, fuzzy_rewrite, lenient, operator, minimum_should_match, zero_terms_query.
match_phrase
In GreptimeDB, the match_phrase
query is used to match a phrase in a text field. Different queries are generated based on the data type. If the data type is text, it is converted to a LIKE query. For other data types, it is converted to an equivalent value query.
The following options are not supported: analyzer, auto_generate_synonyms_phrase_query, fuzziness, max_expansions, prefix_length, fuzzy_transpositions, fuzzy_rewrite, lenient, operator, minimum_should_match, zero_terms_query.
match_all
In GreptimeDB, the match_all
query is used to match all documents.
term
In GreptimeDB, the term
query is used to match an exact value in a text field. The query is mainly converted to an equality query.
Currently, case_insensitive is not supported.
prefix
In GreptimeDB, the prefix
query is used to match a prefix in a text field. The query is mainly converted to a LIKE query.
For example, if you query for text starting with yi
, it will be converted to LIKE 'yi%'
.
The following options are not supported: rewrite, case_insensitive.
range
In GreptimeDB, the range
query is used to match a range in a text field. The query is mainly converted to greater than or equal to and less than or equal to conditions.
Currently, format, relation, time_zone, and boost are not supported.
exists
In GreptimeDB, the exists
query is used to match values that exist in a text field. The query is mainly converted to an existence condition.
bool
In GreptimeDB, the bool
query is used to match multiple query conditions. The query is mainly converted to a combination of AND and OR conditions.