Elasticsearch, Elasticsearch SQL, SHOW COLUMNS或DESCRIBE -是否有



我有一个简单的弹性SQL查询:

GET /_sql?format=txt
{
"query" :"""
DESCRIBE "index_name"
"""
}

,它工作了,输出是这样的:

column                      | type          | mapping    
-----------------------------------------------------------
column_name1                    | STRUCT        | object         
column_name1.Id                 | VARCHAR       | text           
column_name1.Id.keyword         | VARCHAR       | keyword 

是否有可能使用filterwhere准备上述查询,例如:

GET /_sql?format=txt
{
"query":"""
DESCRIBE "index_name"
""",
"filter": {"terms": {"type.keyword": ["STRUCT"]}}
}

GET /_sql?format=txt
{
"query":"""
DESCRIBE "index_name"
WHERE "type" = 'STRUCT'
"""
}

那是不可能的。

DESCRIBEsql命令似乎返回表格数据,它不是一个查询,它不支持WHERE子句或可以在SELECT语句中使用。这实际上并不特定于Elasticsearch,但在RDBMs中也是如此。

对于Elasticsearchfilter子句显然也是如此。这同样适用于SELECTSQL语句,但对于DESCRIBESHOW COLUMNS,虽然不会产生错误,但它对结果没有影响。

在"真正"在SQL中,你可以通过查询information_schema.COLUMNS来解决这个问题,但在Elasticsearch中这不是一个选项。

最新更新