elasticsearch 在弹性搜索上索引Couchbase数据的最佳方法是什么
我与Couchbase DB合作,我想在弹性搜索(ES)上为其部分数据编制索引。 来自Couchbase的数据应同步,即如果CB上的文档发生更改,则应更改ES上的文档。 我有几个问题,关于做这件事的最佳方式是什么:elasticsearch 在弹性搜索上索引Couchbase数据的最佳方法是什么,elasticsearch,couchbase,elasticsearch,Couchbase,我与Couchbase DB合作,我想在弹性搜索(ES)上为其部分数据编制索引。 来自Couchbase的数据应同步,即如果CB上的文档发生更改,则应更改ES上的文档。 我有几个问题,关于做这件事的最佳方式是什么: 同步数据的最佳方式是什么?我看到ES()有一个CB插件,但这是推荐的方法吗 我不想将所有CB文档都存储在ES上,但只存储其中的一部分,例如,我想存储的一些字段和不想存储的一些字段-我该怎么做 我的文档可能有不同的属性,差异可能很大(例如,50个不同的属性/字段)。假设我想将所有这些
- 同步数据的最佳方式是什么?我看到ES()有一个CB插件,但这是推荐的方法吗
- 我不想将所有CB文档都存储在ES上,但只存储其中的一部分,例如,我想存储的一些字段和不想存储的一些字段-我该怎么做
- 我的文档可能有不同的属性,差异可能很大(例如,50个不同的属性/字段)。假设我想将所有这些属性都索引到ES,它会影响性能吗,因为我有很多字段被索引了
希望对你有帮助 给定doc链接,我假设您使用的是Couchbase而不是CouchDB
你可能会发现关于Don Stacy对问题2的回答的额外解释很有用: 当从Couchbase复制时,有3种方法可以干扰Elasticsearch的默认映射(在启动XDCR之前),因此,根据需要,通过设置“store”=false不存储某些字段:
curl -XPUT 'http://localhost:9200/test/couchbaseDocument/_mapping' -d '
{
"couchbaseDocument": {
"_source": {
"enabled": false
},
"properties": {
"doc": {
"properties": {
"your_field_name": {
"store": true,
...
},
...
}
}
}
}
}'
文件:
包括/排除来自_源的字段:是的,我使用的是Couchbase,而不是CouchDB:)我计划像你说的那样工作,只存储ID和需要在ES上索引的字段,然后使用multi-get。但是,我不明白的是如何使用XDCR并同时对文档进行操作。我的意思是,我想在将文档存储到ES之前对其进行一些更改(例如,删除一些不必要的字段)。设置XDCR配置后,源集群(Couchbase)中的所有文档变化将流向目标集群。整个文档流到ES,并在那里编制索引。索引利用您定义的映射来指定应索引哪些字段、字段类型等。您的模板可以选择忽略文档中不必要的字段。所有索引都是ES的功能。Couchbase只是将文档发送到ES集群。Couchbase有一个river插件。它仍处于开发阶段。但是您可以下载代码并根据需要进行更改。对不起,误解了。我已经更新了我的答案。请检查一下。。!