这个问题似乎与在Couchbase中使用XDCR有关。如果我有以下简单对象
1: { "name" : "Mark", "age" : 30}
2: { "name" : "Bill", "age" : "forty"}
并设置一个Elasticsearch索引
curl -XPUT 'http://localhost:9200/test/couchbaseDocument/_mapping' -d '
{
"couchbaseDocument" : {
"dynamic_templates": [
{
"store_generic": {
"match": "*",
"mapping": {
"store": "yes"
}
}
}
]
}
}'
然后,我可以使用REST API将两个对象添加到该索引中
curl -XPUT localhost:9200/test/couchbaseDocument/1 -d '{
"name" : "Mark",
"age" : 30
}'
curl -XPUT localhost:9200/test/couchbaseDocument/2 -d '{
"name" : "Bill",
"age" : "forty"
}'
它们现在都可以搜索(尽管“年龄”是long
一个人和string
另一个人的事实。
但是,如果我将这两个对象存储在一个沙发基存储桶中(而不是直接存储到elasticsearch中)并设置了XDCR,则第一个对象可以很好地复制,但是第二个对象会失败,并出现以下错误
无法执行批量项目(索引)索引{[test] [couchbaseDocument] [2],源[{“ doc”:{“ name”:“ Bill”,“
age”:“ forty”},“ meta”:{ “ id”:“ 2”,“ rev”:“
8-00000b9360d0a0bf0000000000000000”,“到期”:0,“标志”:0}}}}}
org.elasticsearch.index.mapper.MapperParsingException:无法解析[doc.age ]
我无法弄清楚为什么它可以通过REST API来工作,但是当沙发床复制相同的对象时却不能。
我遵循了答案,并使用以下映射通过XDCR使其正常工作
curl -XPUT 'http://localhost:9200/test/couchbaseDocument/_mapping' -d '
{
"couchbaseDocument" : {
"properties" : {
"doc": {
"properties" : {
"name" : {"type" : "string", "store" : "yes"},
"age" : {"type" : "string", "store" : "yes"}
}
}
}
}
}'
现在,所有对象(尽管相同字段的类型不同)都可以复制并搜索。我认为没有必要包括dynamic_templates
我最初尝试的方法。映射工作。
这是您必须在Elasticsearch方面解决的问题。
如果相同的字段名称可以同时包含数字值和字符串值,则应首先创建一个映射,该映射age
为String。因此elasticsearch不会尝试自动猜测该字段的类型。
希望这可以帮助
有没有一种方法可以将文件列表从一个S3存储桶复制到另一个存储桶?两个S3存储桶都在同一个AWS帐户中。我可以使用aws cli命令一次复制一个文件: 然而,我有1000份文件要复制。我不想复制源存储桶中的所有文件,因此无法使用sync命令。有没有一种方法可以用需要复制的文件名列表来调用一个文件,从而自动化这个过程?
使用Java AWS SDK,我创建了一个lambda函数来从s3 bucket读取csv文件。我已经将bucket公之于众,可以从任何浏览器轻松访问它和文件。为了测试它,我使用lambda控制台上的test按钮。我正在使用hello world测试配置输入模板。 它失败的原因是: 错误消息:指定的桶无效。(服务:Amazon S3;状态代码:400;错误代码:InvalidBucketName;
remoteTransportException:未能从流中反序列化异常响应,原因是:org.elasticSearch.transport.transportSerializationException:未能从流中反序列化异常响应,原因是:org.elasticSearch.transport.netty.messageChannelHandler.handlerResponseError(Me
试图通过存储传输将数据从AWS S3拉到谷歌云存储。 我有S3桶访问密钥ID和秘密访问密钥,并能够从gsutil(从笔记本电脑)复制,但它从存储传输抛出权限错误。 不明白它是如何与gsutil工作,但不与存储传输。 错误消息: 有没有办法在计算引擎中使用gsutil将文件从S3复制到GCS? 谢谢,
问题内容: 使用Couchbase 5.0及其Java客户端2.0.3时,出现以下错误。 只需按照以下说明打开存储桶即可: https://developer.couchbase.com/documentation/server/current/sdk/java/managing- connections.html 如前所述,使用基本的本地配置,只需两行代码即可: 那应该打开localhost集群
问题:我想从谷歌云存储桶中的文件夹(例如桶1中的文件夹1)复制文件到另一个桶(例如桶2)。我找不到任何谷歌云存储的气流操作员来复制文件。