String id = ...
Map<String, Object> row = ...
client.prepareIndex(indexName, "my_type", id)
.setSource(row)
.setPipeline("my_pipeline")
.execute();
我找到了答案,如果您有嵌套文档,您必须使用foreach
,否则就像构建json文档一样
文件:
解决方案:
try (XContentBuilder jsonBuilder = XContentFactory.jsonBuilder()) {
BytesReference pipelineSource = jsonBuilder.startObject()
.field("description", "Extract attachment information")
.startArray("processors")
.startObject()
.startObject("foreach")
.field("field", "my_field")
.startObject("processor")
.startObject("attachment")
.field("field", "_ingest._value.my_base64_field")
.field("target_field", "_ingest._value.my_base64_field")
.field("ignore_missing", true)
.field("indexed_chars", -1)
.endObject()
.endObject()
.endObject()
.endObject()
.endArray()
.endObject().bytes();
client.admin().cluster().preparePutPipeline("my_pipeline",
pipelineSource, XContentType.JSON).get();
}
http://localhost:9200/_ingest/pipeline/my_pipeline
{
"my_pipeline": {
"description": "Extract attachment information",
"processors": [
{
"foreach": {
"field": "my_field",
"processor": {
"attachment": {
"field": "_ingest._value.my_base64_field",
"target_field": "_ingest._value.my_base64_field",
"ignore_missing": true,
"indexed_chars": -1
}
}
}
}
]
}
}
在过去的几天里,我尝试为Git版本配置Maven发布插件。我已经为它设置了一个测试项目,我尝试了很多配置,以至于我不知道如何将它们全部显示给您... 在任何情况下,Maven Release插件都只使用当前签出的分支。如果我在主分支上启动发布插件,它会在上面创建标签,但是如果我在开发分支上,它会在那里创建所有东西。 我的实际pom是这样的: 我搜索了很多网站,找不到使用Git的Releasplug
我已经按照本页上的说明进行了操作,但是当我试图运行一个简单的示例代码来测试它时,我得到了一个异常: unsatisfiedLinkError:无法加载库:C:\eclipse 3.8 32位\natives\windows-amd64\gluegen-rt.dll null null
问题内容: 我一直在努力建立我的cordova插件项目。主要由于以下事实: 插件需要位于远离主项目的单独文件夹中 例如,当我使用它来构建项目时,cordova从我的插件文件夹中复制java文件并将其放入文件夹中。 因此,我不应该在Android项目中手动修改插件的.java文件,而必须在插件文件夹中编写代码。 但是我无法将插件文件夹导入到IDE项目中,因此我没有代码完成功能。 没有IDE支持,基本
问题内容: 我正在尝试在ES 1.0.0上设置geo_point对象,并对它运行简单的概念证明查询,但是查询无法返回任何匹配。这是我的设置步骤: 1)创建映射: 2)验证映射: 3)添加一条数据 4)查询该数据: 我的预期结果是,我将返回一击,但查询未返回任何内容。 提前致谢! 问题答案: 我认为您缺少请求的“查询”部分。 我刚刚测试了您的步骤,然后进行更改返回了文档。
问题内容: elasticsearch 中该选项的一个好用例是什么?我在es网站上找不到足够的解释。 问题答案: 范数是一个值,它与字段一起存储在索引中,用于评分。使用默认的评分算法,它结合了一个(用于对短字段进行加权而不是对长字段进行加权)和任何字段级别的提升。您可以在Lucene文档中查看有关它的更多信息。 LengthNorm方面在适当的全文字段上最有帮助。在不需要场增强的结构化字段上,可以
问题内容: 我正在使用Angular JS,我需要使用angular JS设置下拉列表控件的选定选项。如果这很荒谬,请原谅我,但我是Angular JS的新手 这是我的html的下拉列表控件 填充后,我得到 如何设置要选择的控件? 问题答案: 希望我能理解您的问题,但是该指令在控件中的选定项目和的值之间创建了双向绑定。这意味着更改JavaScript或更改控件中的值会更新另一个。如果值为,则应选择