node.js - 集合中每个 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'
}
然后系统应按以下顺序关联这些文档:
- id2 <==> id4 # “农夫杰克” - n-gram
- id2 <==> id1 # 围栏和母鸡
- ... 等等。
解决这个问题的一种低效方法是,一旦我在 Elasticsearch 中创建了集合 A 的索引,我就可以编写一个批处理过程来循环遍历每个 n-gram 并在 ES 中搜索它,然后将结果推回集合 A(见协会)。
我认为必须有一种更简单的方法来做到这一点,而且我可能会遗漏一些东西。在那儿 ?如果是这样,它是什么或者我在哪里可以找到关于它的好的参考资料?
解决方案
在 ElasticSearch 中没有简单的方法可以做到这一点。最简单的方法是在运行时进行第二次搜索以检索相关内容。
由于它是动态内容,如果您对其进行索引,则它可能不会在某些时候更新,除非索引大小是固定的。
如果你真的想索引结果,我会说你的批次是一个解决方案
推荐阅读
- ios - Xcode 标签栏和 SVG 图标
- pygame - Python pygame 最新版本:Visual Studio Code 显示缺少模块
- c# - C#:尝试 foreach 捕获继续
- postgresql - Postgresql:JSONB 数据类型列不为空错误
- arduino - 从 Arduino 中的 AT 命令中提取数字
- django - 有没有办法统一测试传递给 Model 或 Q 对象的参数?
- c - 了解一些cc1参数
- linux - Unix 重试逻辑以获取密码
- javascript - 自定义 Web 组件回调
- java - 非 Spring 项目中的 Spring 数据