2016-08-12 3 views
0

私は自分のユーザーに表示したいファセット/集計を生成するために弾性検索を取得するのに問題があります。ユーザーが集計でORを使用できるようにする

TLTR

私はこのサイト上のファセットを動作するようにファセットをwan't: https://mad.coop.dk/frugt-og-groent#!/frugt-og-baer


たちは販売のための車を表示している検索ページを想像してみてください。

{ 
    "brand": "Ford", 
    "color": "Blue" 
} 

INDEXING

がインデックスに

POST /agg_analysis/data/_bulk 
{ "index": {}} 
{ "brand" : "Ford", "color":"Blue" } 
{ "index": {}} 
{ "brand" : "Ford", "color":"Red" } 
{ "index": {}} 
{ "brand" : "Toyota", "color":"Blue" } 
{ "index": {}} 
{ "brand" : "Toyota", "color":"Yellow" } 

INITIAL FACETS

を4台の追加

車:車は、このようにモデル化されています我々は、ユーザーが車

enter image description here

最初のクエリをフィルタリングすることができ、ページの左側に

集約はまっすぐ前方

GET /agg_analysis/data/_search 
{ 

    "aggs": { 
    "brand": { 
     "terms": { 
     "field": "brand" 
     } 
    }, 
    "color": { 
     "terms": { 
     "field": "color" 
     } 
    } 
    } 
} 

ユースケース1であります:青い車を探す

ユーザーが色をクリックしてください:青面と面と車がそれに応じて

enter image description here

GET /agg_analysis/data/_search 
{ 
    "query": { 
    "term": { 
     "color": { 
     "value": "blue" 
     } 
    } 
    }, 
    "aggs": { 
    "brand": { 
     "terms": { 
     "field": "brand" 
     } 
    }, 
    "color": { 
     "terms": { 
     "field": "color" 
     } 
    } 
    } 
} 

更新されているすべての罰金であり、ユーザーは幸せ

ユースケース2:私を見つけるBLUEまたは赤い車

ここで問題が始まります。ユーザーが青色のチェックボックスをクリックすると、赤いチェックボックスが消えました。

それでは、私がしたいことはすべての面が更新されるということである - 1を除いて、ユーザーがクリックで

ユースケース3:BLUE OR RED CAR私を見つける、それがFORD

されなければなりません。

これはちょっと同じ問題です。

答えて

関連する問題