2

我有一个 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"
    ...

有没有其他方法可以解决这个问题?

4

1 回答 1

1

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

curl --location --request PUT 'http://localhost:9200/_cluster/settings' \
--header 'Content-Type: application/json' \
--data-raw '{
    "transient": {
        "opendistro.sql.query.analysis.enabled": "false"
    }
}'
于 2021-03-05T03:51:23.170 回答