0

哪种结构更适合以下查询:

人有 5 个香蕉和 1 个苹果。

人有 5 个香蕉或 1 个苹果。

嵌套?

{
    id: 1,
    has: 
    [
        {
            'name': 'banana',
            'quantity': 5,
        },
        {
            'name': 'apple',
            'quantity': 1,
            'species': 'gala'
        }
    ]
}

还是固定插槽?

{
    id: 1,
    slot1: {
            'name': 'banana',
            'quantity': 5,
            },
    slot2: {
            'name': 'apple',
            'quantity': 1,
            'species': 'gala'
            }
    slot3: null,
    slot4: null
}
4

2 回答 2

1

嵌套方法更简单:您可以执行简单的嵌套查询 [1],而不必执行 slot1 OR slot2 OR... 如果 Person 没有其他字段,则将每个“slot”索引为文档会更简单。

[1] http://www.elasticsearch.org/guide/reference/query-dsl/nested-query.html

于 2012-04-16T17:09:33.907 回答
0

我会去:

{
  id: 1,
  banana: {
        'quantity': 5,
  },
  apple: {
        'quantity': 1,
        'species': 'gala'
  }
}

那么查询很简单。通过查询字符串查询,您的查询将如下所示:

banana.quantity:5 AND apple.quantity:1

banana.quantity:5 OR apple.quantity:1
于 2012-04-16T21:32:21.847 回答