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 に他のフィールドがなければ、各 "スロット" をドキュメントとしてインデックス付けするのがさらに簡単になります。

[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 に答える