elasticsearch - 弹性搜索加入
问题描述
我有两个索引。一个索引“指示”具有一组值。其他是“项目”。在此索引中,我将添加指示值,例如" indication = oncology"
. 现在我想显示所有迹象。我可以使用术语聚合来做到这一点。但我的问题是我还想显示使用该指示的项目数量。所以为此,我需要编写连接查询。谁能帮我解决这个问题?
预期结果示例:
[{name:"onclogogy",projectCount:"12"}]
解决方案
您不能在 Elasticsearch 中加入。您可以做的是将指示名称存储在project
索引中,然后在索引上应用术语聚合project
。这基本上会让你与indications
所有项目文件和每个指示的数量有所不同。
类似的东西:
GET /project/_search
{
"query": {},
"aggs": {
"indcation":{
"terms": {
"field": "indication_name"
}
}
}
}
Elasticsearch 不支持连接。这就是拥有 NoSQL 的全部意义所在,您可以尽可能地保持数据的非规范化。使文档越来越自给自足。有一些方法可以让您在数据中添加某种关系。这是一个不错的博客。
推荐阅读
- sql - 当运行数千行数据以将它们放入雪花时,合并是否比插入查询更快?
- debugging - 为什么调试器在 PhpStorm 远程 Web 服务器中不起作用?
- tensorflow - 分配器(GPU_0_bfc)内存不足 keras:我可以清理内存还是做一些垃圾收集器?
- php - 如何使用 php 创建套接字 io 服务器?
- events - 当用户直接关闭标签页或窗口或系统关闭时,如何设置用户的活动状态为注销?
- image - 使用谷歌云视觉 API 从图像中获取可读文本
- ruby-on-rails - Rails:Couldn't find all Post with 'id': (false, true) (找到了 1 个结果,但正在寻找 2 个)
- javascript - Nextjs 中的 getStaticProps() 不显示页面源
- python - Pyfolio - 使用月度数据
- javascript - 如何在javascript日期中获取一天的开始和结束?