首页 > 解决方案 > 集合中每个 mongo 文档的 Elasticsearch 和 MongoDB n-gram 索引

问题描述

我是一名 Elasticsearch 新手,遇到了关于将 ES 与 MongoDB 结合使用以获得文本索引/搜索功能的建议。

我想要实现的是分析我的 Mongo 集合中的文本,然后根据文本上下文在相似内容之间建立关联。

例如:

Collection A => 
{
id:1, 
text: 'The sly Fox dug a tunnel under the Fence to snatch a Hen',

}
    {
id:2, 
text: 'Jack the farmer built a fence to protect his Hens',
associated: [id4,id1,...]
}
    {
id:3, 
text: 'Jack listened to his radio and called it a night',
}
{
id:4, 
text: 'The farmer Jack plowed the field'
}

然后系统应按以下顺序关联这些文档:

解决这个问题的一种低效方法是,一旦我在 Elasticsearch 中创建了集合 A 的索引,我就可以编写一个批处理过程来循环遍历每个 n-gram 并在 ES 中搜索它,然后将结果推回集合 A(见协会)。

我认为必须有一种更简单的方法来做到这一点,而且我可能会遗漏一些东西。在那儿 ?如果是这样,它是什么或者我在哪里可以找到关于它的好的参考资料?

标签: node.jsmongodbelasticsearch

解决方案


在 ElasticSearch 中没有简单的方法可以做到这一点。最简单的方法是在运行时进行第二次搜索以检索相关内容。

由于它是动态内容,如果您对其进行索引,则它可能不会在某些时候更新,除非索引大小是固定的。

如果你真的想索引结果,我会说你的批次是一个解决方案


推荐阅读