首页 > 解决方案 > 尝试在弹性搜索中将 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。

标签: mongodbelasticsearch

解决方案


坚持单一_type。每个索引的多个类型在 Elasticsearch 中逐渐被删除,如果你这样做,你只会有不必要的升级痛苦。

而是使用自定义字段,例如type(没有前导下划线)或对您有意义的任何内容。然后,您可以在该自定义字段上使用过滤器并获得与多种类型相同的行为。

如果没有在 MongoDB 中显示原始文档,我不确定您是否需要任何额外的转换。


推荐阅读