Hi, Any thoughts?
On Thu, Aug 29, 2024 at 8:57 PM Kamal Kishore Aggarwal < kkroyal....@gmail.com> wrote: > Hi, > > any suggestions, whether it is feasible in this approach or any other > approach? > > Thanks in advance. > > Regards > Kamal > > > On Tue, Aug 27, 2024 at 10:06 PM Kamal Kishore Aggarwal < > kkroyal....@gmail.com> wrote: > >> Hi, >> >> Currently, we have data in 2 collections - Product and its associated >> offers >> >> offer collection data format >> { >> "id": "OFF1", >> "p_id_ss": ["P1", "P2", "P3"......] // upto 6K product >> ids in certain cases >> "o_type_s": "50% Off Offer" // other 20 >> fields >> >> }, { >> "id": "OFF2", >> "p_id_ss": ["P2", "P3"......] >> "o_type_s": "20% Off On XYZ Card", >> // other 20 fields >> >> }and so on till 50k documents................................. >> >> Product data format >> { >> "id": "P1", >> "o_id_ss": ["OFF1", "OFF2", "OFF3"] >> "p_name_s": "Men's Nike shoes", >> "p_category_s": "Shoe" // other 50 fields >> >> }, { >> "id": "P2", >> "o_id_ss": ["OFF3", "OFF4", "OFF5"] >> "p_name_s": "Women dress, >> "p_category_s": "Dress" >> // other 50 fields >> } >> and so on till 10k documents................................. >> >> In order to calculate facets at offer Level, we are using the below query >> (Json facet + Aggregate Functions), which works fine. >> >> /select?q=*:*&rows=10&facet=true&facet.mincount=1&json.facet={"p_category":{"type":"terms","field":"p_category","domain":{"excludeTags":["p_id_s","o_id_ss","p_category"]},"facet":{"count":"unique(o_id_ss)"}}}&fq=p_id_s:P1 >> >> *But, lets there is scenario where there is filter on offer id, this >> query is not returning correct facet count.* >> >> >> select?q=*:*&rows=10&facet=true&facet.mincount=1&json.facet={"p_category_s":{"type":"terms","field":"p_category_s","domain":{"excludeTags":["p_id_s","o_id_ss","p_category_s"]},"facet":{"count":"unique(o_id_ss)"}}}&fq=o_id_ss:OFF-1 >> >> The count that is coming is more than 1 (as we are applying a filter on >> one offer id). But, since the 'o_id_ss' is a multi-valued field, it is >> giving a count based upon all the values in that field. >> >> Please suggest how to tune this query or there is another approach to >> solve this requirement to fetch facet data for product fields at offer >> level. >> >> Notes: >> >> • One offer can be tagged to multiple products. >> • One product can be tagged to multiple offers. >> >> Regards >> Kamal >> >>