首页 > 解决方案 > 弹性搜索加入

问题描述

我有两个索引。一个索引“指示”具有一组值。其他是“项目”。在此索引中,我将添加指示值,例如" indication = oncology". 现在我想显示所有迹象。我可以使用术语聚合来做到这一点。但我的问题是我还想显示使用该指示的项目数量。所以为此,我需要编写连接查询。谁能帮我解决这个问题?

预期结果示例:

[{name:"onclogogy",projectCount:"12"}]

标签: elasticsearchelasticsearch-aggregationelk

解决方案


不能在 Elasticsearch 中加入。您可以做的是将指示名称存储在project索引中,然后在索引上应用术语聚合project。这基本上会让你与indications所有项目文件和每个指示的数量有所不同。

类似的东西:

GET /project/_search
{
    "query": {},
    "aggs": {
        "indcation":{
            "terms": {
                "field": "indication_name"
            }
        }
    }
}

Elasticsearch 不支持连接。这就是拥有 NoSQL 的全部意义所在,您可以尽可能地保持数据的非规范化。使文档越来越自给自足。有一些方法可以让您在数据中添加某种关系。是一个不错的博客。


推荐阅读