【发布时间】:2015-02-26 22:05:25
【问题描述】:
(请先阅读本文How to use Elastic Search on top of a pre-existing SQL Database?)我目前正在使用MySql,但我正在尝试更改为使用ElasticSearch 作为我们的搜索引擎。我正在使用以下 curl 请求通过Elastic Search River JDBC 将表迁移到弹性搜索:
curl -XPUT 'localhost:9200/_river/table_river/_meta' -d '{
"type" : "jdbc",
"jdbc" : {
"url" : 'localhost:9200/blah', "user" : "x", "password" : "x",
"sql" : "select some_field as _id, * From some_table",
"index": "some_index",
"type" : "some_type",
"schedule" : "0 0-59 0-23 ? * *"
}
}'
为了保持弹性搜索和 mysql 表同步,我使用 schedule 参数每分钟运行一次并将表拉入弹性搜索,但在执行期间弹性搜索创建重复索引,我得到以下信息:
complete: river jdbc/table_river metrics: 21123 rows
一分钟后,河流再次执行我得到以下响应:
complete: river jdbc/table_river metrics: 42246 rows
我的“index_total”从 21125 增加到 42248 到 63371,但文档总数保持不变:21125
我可能没有正确地做事。我会先接受一篇文章的网址,而不是有人告诉我如何去做。我先做了一些公平的研究。
【问题讨论】:
-
重复索引是什么意思?你能试着描述一下你想要做什么吗?并且可能会添加一些日志错误
-
快速更新了我的描述,希望你能帮助我
-
您似乎误解了 Elasticsearch JDBC River 插件的实际工作原理。为什么需要保持数据库和 elasticsearch 同步?您多久在数据库中插入/更新元素?
-
顺便说一句,您发布的链接中的答案不是很准确。你用的是什么版本的elasticsearch?
-
插入/更新并不经常进行,但我将组成一个大约 100 万行的表的各种表展平,我希望能够通过 ES API 实现非常有效地查询该表Lucene 的全文搜索引擎。但我不希望使用 ElasticSearch 和 MySql 数据库的数据不稳定,所以我不知道如何解决这个问题。
标签: elasticsearch