哪种结构更适合查询:
人有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
}
答案 0 :(得分:1)
嵌套方法更简单:你可以做一个简单的嵌套查询[1],而不必做slot1或slot2或者...将每个“槽”索引为文档甚至更简单,如果Person没有其他字段。
[1] http://www.elasticsearch.org/guide/reference/query-dsl/nested-query.html
答案 1 :(得分:0)
我会选择:
{
id: 1,
banana: {
'quantity': 5,
},
apple: {
'quantity': 1,
'species': 'gala'
}
}
然后查询很简单。通过query string query,您的查询将如下所示:
banana.quantity:5 AND apple.quantity:1
和
banana.quantity:5 OR apple.quantity:1