This issue has been filed to examine how to remove the known restrictions of the ES|QL match and qstr functions. The limitations are:
- match() and qstr() can only be used in WHERE commands
- The field parameter can only be an ES index field
- match() or qstr() can't be used as part of a disjunction
- match() with other match() disjunctions, as well as separately
- match() with ES|QL predict disjunctions
- The above two cases can be addressed separately, since the formed is pushable to Lucene, while the latter is not
- There is special logic to fallback to the
.keyword version of a field when doing a term query and that MATCH currently does not detect that, so because of this edge case the whole disjunction is currently disabled
- match() can't be used after LIMIT - https://github.com/elastic/elasticsearch/issues/1152974.
- qstr() can't be used after commands that change the available fields; as the query string is not analyzed, we cannot determine what fields are being used in the query to do type checks and add proper error messages. qstr() cannot be used after SHOW, ROW, DISSECT, ENRICH, EVAL, GROK, KEEP, MV_EXPAND, RENAME, STATS or LIMIT.
This issue has been filed to examine how to remove the known restrictions of the ES|QL
matchandqstrfunctions. The limitations are:.keywordversion of a field when doing a term query and that MATCH currently does not detect that, so because of this edge case the whole disjunction is currently disabled