弹性搜索 - 从多种类型中检索数据

Elastic search - Retrieve data from multiple types

我正在使用 elasticsearch,我有两种类型可以保存我的数据。

现在我需要使用单个查询从两种类型中检索数据。

请看我的用例

我有两种类型,分别称为 basic 和 marks,我将文档保存如下

myindex/basic

{ "id": "100", "name": "Tom" }

myindex/basic

{ "id": "101", "name": "John"

}

myindex/marks

{ "id": "100", "mark": "300"

}

myindex/marks

{ "id": "101", "mark": "500" }

现在我需要得到一个学生的名字和分数,他的 id 是 100。

有没有可能得到这样的结果

我开始知道这些类型的数据模型不适合 nosql,但在这里我需要它,因为这些记录是从 RDBMS 数据库复制的。

有任何建议请提前致谢。

您可以通过在 url

中列出它们来在单个查询中查询这两种类型
POST myindex/basic,marks/_search

你也可以通过id过滤所有的

POST myindex/basic,marks/_search
{
  "query": {
    "bool": {
      "must": [
        {"term": {
          "id": {
            "value": 100
          }
        }}
      ]
    }
  }
}