我正在使用一个名为 river-couchdb 的带有 elasticSearch 的插件来创建我的 couchdb 的全文索引。它使用 couchdb _changes api 来监听文档。我假设它正在跟踪 _changes api 的最后一个序列。
有时我们重建我们的 CouchDB 并将我们的 last-seq 设置回 0。我发现重置 river-couchdb seq 的唯一方法是删除它的索引和河流本身并重新创建它。有没有更好的办法?
我正在使用一个名为 river-couchdb 的带有 elasticSearch 的插件来创建我的 couchdb 的全文索引。它使用 couchdb _changes api 来监听文档。我假设它正在跟踪 _changes api 的最后一个序列。
有时我们重建我们的 CouchDB 并将我们的 last-seq 设置回 0。我发现重置 river-couchdb seq 的唯一方法是删除它的索引和河流本身并重新创建它。有没有更好的办法?
据我记得,您的 _river 索引中有一个 _seq 文档,用于您的河流。该文档有一个 _last_seq 条目。
如果你想从头开始,我想你可以简单地删除这个文件:
curl -XDELETE localhost:9200/_river/yourrivername/_seq
它有帮助吗?
来自 couchdb-river 手册: starting-at-a-specific-sequence
curl -XDELETE localhost:9200/_river/yourrivername/_seq
curl -XPUT 'localhost:9200/_river/yourrivername/_seq' -d '
{
"couchdb": {
"last_seq": "100"
}
}'
Elasticsearch 无法在不删除旧文档的情况下更新 last_seq