ElasticSearch:Opendistro SQL:由于冒犯符号[.11],无法解析查询

时间:2020-11-11 18:24:36

标签: elasticsearch aws-elasticsearch elasticsearch-opendistro

我有一个ElasticSearch索引,该索引的名称为.(例如:my_index-2020.11.06-001)。当我使用SQL获取所有文档的count时,出现以下错误

curl --location --request POST '127.0.0.1:9200/_opendistro/_sql' 
--header 'Content-Type: application/json'
--data-raw '{
  "query": "SELECT count(*) FROM my_index-2020.11.06-001"
}'

Failed to parse query due to offending symbol [.11] at: 'SELECT count(*) FROM my_index-2020.11.06-001 ...

我也尝试在索引名称中使用反引号(`)和单引号('),但这都无济于事

curl --location --request POST '127.0.0.1:9200/_opendistro/_sql' 
--header 'Content-Type: application/json'
--data-raw '{
  "query": "SELECT count(*) FROM `my_index-2020.11.06-001`"
}'

{
  "error": {
    "reason": "Invalid SQL query",
    "details": "Field [my_index-2020.11.06-001] cannot be found or used here.",
    "type": "SemanticAnalysisException"
    ...

还有其他方法可以解决此问题吗?

1 个答案:

答案 0 :(得分:0)

这是一个错误,但有一个解决方法 禁用语义分析器

curl --location --request PUT 'http://localhost:9200/_cluster/settings' \
--header 'Content-Type: application/json' \
--data-raw '{
    "transient": {
        "opendistro.sql.query.analysis.enabled": "false"
    }
}'