Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用ElasticSearch JDBC river从表中获取更改 - Fatal编程技术网

使用ElasticSearch JDBC river从表中获取更改

使用ElasticSearch JDBC river从表中获取更改,
Warning: implode(): Invalid arguments passed in /data/phpspider/zhask/webroot/tpl/detail.html on line 45
,,我正在为ElasticSearch配置JDBC river,但找不到任何好的配置示例。 我已经阅读了GitHub的所有内容 我有一个SQL查询,需要每隔X秒从所有表列中获取更改。我如何告诉JDBC river某些行已更改,应该重新编制索引 在ES服务器启动期间获取数据,正在进行轮询,但不会将更改从DB获取到ES 我的配置: curl -XPUT 'localhost:9200/_river/itemsi/_meta' -d '{ "type" : "jdbc", "jdbc" : { "

我正在为ElasticSearch配置JDBC river,但找不到任何好的配置示例。 我已经阅读了GitHub的所有内容

我有一个SQL查询,需要每隔X秒从所有表列中获取更改。我如何告诉JDBC river某些行已更改,应该重新编制索引

在ES服务器启动期间获取数据,正在进行轮询,但不会将更改从DB获取到ES

我的配置:

curl -XPUT 'localhost:9200/_river/itemsi/_meta' -d '{
"type" : "jdbc",
"jdbc" : {
    "driver" : "com.mysql.jdbc.Driver",
    "url" : "jdbc:mysql://mydb.com:3306/dbname",
    "user" : "yyy",
    "password" : "xxx",
    "sql" : "SELECT ii.id AS _id, ii.id AS myid, ... FROM ... LEFT JOIN .. ON...",
    "poll" : "6s",
    "strategy" : "simple"
    },
"index" : {
    "index" : "invoiceitems",
    "bulk_size" : 600,
    "max_bulk_requests" : 10,
    "bulk_timeout" : "5s",
    }
}'

谢谢。

我只能就此发表我的看法,因为我目前正在构建一个解决方案,该解决方案执行Informix DB的大型索引。这是我目前的思考过程,还没有经过测试或实施-

我计划做的是对核心数据库本身执行一次索引,从那里实现触发器,将更新和/或新记录激发到一个单独的表中。显然,一旦我执行了初始索引,我将删除该河流以阻止它重新运行主索引,从这里我将定义一条河流以轮询表,该表将包含更新和/或新记录,例如每15分钟一次,并将其加载到ES中

我还没有完全弄清楚的一点是更新ES中已经存在的记录,因为我不知道river插件中有任何功能允许您从实际DB记录中的ID字段设置记录的ID,从而允许您从ES中检索和更新。也许写一个独立的程序,它能做river插件所做的事情

目前所有的想法和推测,但正如我所说,我目前正在研究这个问题。如果我还记得的话,我可能会回到这里,发布我的最终实现,如果它被允许走那么远的话。

Add

“自动提交”:正确


在索引设置中。然后问题将得到解决

您可以使用schedule参数,它支持重复运行jdbc river插件

明细表参数的示例:

"schedule" : "0 0-59 0-23 ? * *"
这将在一周/月/年的每一分钟、每一小时、每一天执行JDBC river

有关明细表参数的详细信息,请参阅文档,

谢谢!由于缺少ElasticSearch的文档,我正在考虑Sphinx。但如果你在研究之后再写信给我,我会很高兴的。