在弹性搜索中实现父子的最佳方法是什么?

时间:2014-06-09 18:15:18

标签: elasticsearch

我想知道如何在Elastic Search中映射Stack Overflow中的问题和答案。你可以作为问题的孩子来实现答案,但在那种情况下,例如,如何呈现的列表能够概述你给出的所有答案?

这样的列表包含问题标题,答案数量和上次答案的日期。因此,它是问题数据和答案数据的混合。

在弹性搜索中使用父子时,我只能从问题或答案中检索数据,但不能从两者中检索。因此,如果我想创建类似Stack Overflow的视图,我还需要将问题标题存储在答案中。但是,如果问题标题发生变化,则会再次产生开销。在这种情况下,问题和所有答案都必须更新。

1 个答案:

答案 0 :(得分:0)

请结帐nested type,您可以在其中存储问题和答案的索引并查询它们。

以下是索引的示例:

{
   "_index": "questions-development",
   "_type": "question",
   "_id": "8",
   "_score": 1,
   "_source": {
      "id": 8,
      "title": "Question title",               
      "answers": [
         {
            "answer_id": 42,                     
            "text": "Answer text"
         },
         {
            "answer_id": 88,                    
            "text": "Answer text"
         },
         {
            "answer_id": 79,                     
            "text": "Answer text"
         },
         {
            "answer_id": 80,                    
            "text": "Answer text"
         },
         {
            "answer_id": 8,                      
            "text": "Answer text"
         }
      ]
   }
}