【问题标题】:Elasticsearch SQL-Query not possible无法使用 Elasticsearch SQL 查询
【发布时间】:2019-07-22 15:42:01
【问题描述】:

我有一个在本地运行的 ElasticSearch 实例,它运行良好。现在我想使用 SQL 查询索引。我使用 NodeJS-Client (v7) 尝试了它,通常是通过 REST-Api。 休息电话:

POST http://localhost:9200/_sql
{
   "body": {
       "query": "DESCRIBE indexname"
   }
}

通过 nodeJS:

elasticClient.sql.query({
    format: "json",
    body: {
        query: "DESCRIBE indexname"
    }
}).then(result => {
    console.log(result);
}).catch(reject => {
    console.log(reject);
});

两者都返回相同的错误:

uri [/_sql] 和方法 [POST] 的 HTTP 方法不正确,允许:[GET, HEAD, PUT, DELETE] 状态:405

有人可以帮忙吗? 干杯!

【问题讨论】:

  • 在盆景上有同样的问题...但什么也没找到:-(
  • 您使用的是哪个版本的 ES?我怀疑您正在针对 v6 集群运行 v7 JS 客户端
  • 您可以使用curl 或除此客户端代码之外的其他内容运行相同的POST _sql 请求吗? (询问是因为该错误消息对于 x-pack 未安装ES-SQL 未启用 的设置很典型)并且有助于了解确切的版本ES 服务器。另外,POST 请求 _sql 的正文应该是 {"query": "DESCRIBE indexname"},不知道为什么你有 body
  • @tiefenb 你能详细说明上面提出的问题吗?对某个帖子感兴趣,并为此提供赏金,但不准备帮助进行调查并不是很有成效。

标签: node.js elasticsearch elasticsearch-sql


【解决方案1】:

试试

GET http://localhost:9200/_sql
{
   "body": {
       "query": "DESCRIBE indexname"
   }
}

【讨论】:

  • GET 请求不能有正文
  • 但它是这样使用的,例如在_search端点
【解决方案2】:

此问题通常是由您的 elastic/elasticsearch 模块不兼容引起的。你的ES版本是多少?尝试将您的 NodeJS 版本升级到您的 ES 版本。

在此处检查兼容性。

https://www.npmjs.com/package/@elastic/elasticsearch

【讨论】:

    猜你喜欢
    • 2015-06-24
    • 1970-01-01
    • 2019-11-17
    • 1970-01-01
    • 1970-01-01
    • 2017-08-11
    • 2015-01-13
    • 1970-01-01
    • 2019-11-16
    相关资源
    最近更新 更多