不可用ShardsException

不可用ShardsException,
Warning: implode(): Invalid arguments passed in /data/phpspider/zhask/webroot/tpl/detail.html on line 45
,,我想使用elasticsearch索引和搜索mysql数据库&我遵循了本教程 https://github.com/jprante/elasticsearch-river-jdbc/wiki/Quickstart 起初,我下载了elasticsearch并将river jdbc安装在其插件文件夹中。然后在ES_HOME/plugins/river jdbc/中添加mysql jdbc,然后启动elasticsearch并启动另一个终端窗口,并使用这个curl命令创建了一个名为my_jdbc_r

我想使用elasticsearch索引和搜索mysql数据库&我遵循了本教程

https://github.com/jprante/elasticsearch-river-jdbc/wiki/Quickstart
起初,我下载了elasticsearch并将river jdbc安装在其插件文件夹中。然后在ES_HOME/plugins/river jdbc/中添加mysql jdbc,然后启动elasticsearch并启动另一个终端窗口,并使用这个curl命令创建了一个名为my_jdbc_river的新jdbc river

curl -XPUT 'localhost:9200/_river/my_jdbc_river/_meta' -d '{
    "type" : "jdbc",
    "jdbc" : {
        "driver" : "com.mysql.jdbc.Driver",
        "url" : "jdbc:mysql://localhost:3306/bablool",
        "user" : "root",
        "password" : "babloo",
        "sql" : "select * from details"
    },
    "index" : {
        "index" : "jdbc",
        "type" : "jdbc"
    }
}'
我得到以下错误:-

然后当我运行这个命令时:
curl-XGET'localhost:9200/jdbc/jdbc/_search?pretty&q=*'

我得到了以下错误:

"error": "IndexMissingException[[jdbc] missing]", "status" : 404
当我在我的浏览器中给出这个时:

http://localhost:9201/_search?q=*
我越来越像这样了:

{
  "took": 51,
  "timed_out": false,
  "_shards": {
    "total": 1,
    "successful": 1,
    "failed": 0
  },
  "hits": {
    "total": 1,
    "max_score": 1.0,
    "hits": [
      {
        "_index": "_river",
        "_type": "my_jdbc_river",
        "_id": "_meta",
        "_score": 1.0,
        "_source": {
          "type": "jdbc",
          "jdbc": {
            "driver": "com.mysql.jdbc.Driver",
            "url": "jdbc:mysql://localhost:3306/bablool",
            "user": "root",
            "password": "babloo",
            "sql": "select * from details"
          },
          "index": {
            "index": "jdbc",
            "type": "jdbc"
          }
        }
      }
    ]
  }
}

mysql数据库有索引吗?如何在数据库中搜索?

我遇到了类似的问题,这就是我解决问题的方法:

首先,我通过
http://localhost:9200/_cat/indices?v

删除所有健康状态为红色的索引(只有一个健康状态为红色的索引)

这就是在索引
curl-XDELETE'localhost:9200/_river/'中删除的方式。

重做你提到的链接中的第7步

希望它也能解决你的问题:)祝你好运