mongodb - 尝试在弹性搜索中将 MongoDB 文档作为单独的类型导入
问题描述
如果有人能指出我正确的方向,那将不胜感激:)
我可以使用以下 transform_file.js 代码将集合从 MongoDB 导入到 elasticsearch:
t.Source("source", source, '/^categories$/').Save("sink", sink, "/.*/")
在 elasticsearch(使用 appbase.io)中,数据以 MongoDB 集合“类别”为唯一类型进行索引,而所有 MongoDB 文档都是 elasticsearch 文档。
但是,我希望每个 MongoDB 文档改为它们自己的弹性搜索类型。所以不是“类别”是弹性搜索中的唯一类型,我希望类型是宝马和奥迪。理想情况下命名为 category_bmw 和 category_audi。
我认为必须更改'.Save'之后的代码,但我不确定要进行哪些更改。
编辑:我使用的是弹性搜索版本 5。
解决方案
坚持单一_type
。每个索引的多个类型在 Elasticsearch 中逐渐被删除,如果你这样做,你只会有不必要的升级痛苦。
而是使用自定义字段,例如type
(没有前导下划线)或对您有意义的任何内容。然后,您可以在该自定义字段上使用过滤器并获得与多种类型相同的行为。
如果没有在 MongoDB 中显示原始文档,我不确定您是否需要任何额外的转换。
推荐阅读
- windows-subsystem-for-linux - WSL终端忘记更新失去焦点
- javascript - 如何根据从 DOM 接收到的键更新状态数组中的某些对象
- three.js - 模型出现时 FPS 下降 - three.js
- admob - 测试 Google Admob 单元 id 是否可以正常工作,但不是真实的?
- java - LibGdx MapProperties 对象方法 containsKey 始终返回 false
- list - 希望反向排序列表的速度快
- visual-studio-code - 无法构建 Visual Studio 代码源 - “错误:找不到模块 'gulp-bom'”
- python - 如何在具有总和限制的组内密集排名?
- angularjs - 我想检测浏览器语言并将该浏览器语言用作 angularjs 应用程序语言
- python - 如何生成具有随机值的布尔数组?