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

标签 mysql lucene full-text-search elasticsearch elasticsearch-jdbc-river

我正在为 ElasticSearch 配置 JDBC river,但找不到任何好的配置示例。 我已阅读全部 pageselasticsearch-river-jdbc 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",
    }
}'

谢谢。

最佳答案

您可以使用 schedule 参数启用 jdbc river 插件的重复运行。

计划参数示例:

"schedule" : "0 0-59 0-23 ? * *"

这每分钟、每小时、每周/每月/每年的所有日子都执行 JDBC river。

有关计划参数阅读文档的更多详细信息, https://github.com/jprante/elasticsearch-river-jdbc

关于mysql - 使用 ElasticSearch JDBC river 从表中获取更改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18248067/

相关文章:

php - 使用的表类型不支持 FULLTEXT 索引

javascript - 查找文档中引用的人员

javascript - 使用搜索索引过滤

php - 针对大型数据集的 MySQL 数据库建模

php - 使用 PHP session 验证用户名

search - 更喜欢在搜索结果的开头而不是在结尾使用 elasticsearch 匹配搜索词

java - 为什么ElasticSearch重启后不可用,部分分片未分配?

mysql - 对重复项进行重复更新

Mysql查询,只返回日期不与其他记录日期重叠的记录

lucene - Elasticsearch 插件