我有下一个问题:
我有 couchbase - 名为 cars 。 我在 elasticsearch 中有索引 - 名为 test
我映射了我的文档。 在 elasticsearch 配置中设置:
couchbase.typeSelector.defaultDocumentType: 'Test'
couchbase.typeSelector.documentTypeDelimiter: '_'
我开始从 couchbase 复制到 elasticsearch 。 BUT!我的所有文档都是默认类型(测试)
我也尝试使用 doc.NameOfProperty 进行映射 - 但它并没有帮助我:(
我不知道为什么它不起作用。
我的目标 - 通过 TYPE 将文档从couchbase设置为elasticsearch。
谢谢。
答案 0 :(得分:1)
您错过了文档类型选择器设置。默认情况下,插件使用DefaultTypeSelector
,它只是将所有文档分配给defaultDocumentType,在您的情况下是"测试"。
要让插件通过根据分隔符拆分id来将文档分配给类型,您需要告诉插件使用DelimiterTypeSelector
。将以下行添加到elasticsearch.yml,以使用您在配置中已有的内容:
couchbase.typeSelector: org.elasticsearch.transport.couchbase.capi.DelimiterTypeSelector
这样,插件将以" Something_123"的形式分配任何带有ID的文档。类型" Something"和所有其他类型的文件"测试"。
您的总沙发基础相关设置应如下所示:
couchbase.username: Administrator
couchbase.password: 12345 # Same as the combination on my luggage
couchbase.ignoreFailures: true
couchbase.wrapCounters: true
couchbase.ignoreDotIndexes: true
couchbase.typeSelector: org.elasticsearch.transport.couchbase.capi.DelimiterTypeSelector
couchbase.typeSelector.documentTypeDelimiter: '_'
couchbase.typeSelector.defaultDocumentType: 'Test'