Spędziłem wiele godzin, szukając rozwiązania mojego problemu. Widziałem ludzi, którzy zadają pytania bliskie temu, co próbuję osiągnąć, ale jak dotąd nikt nie zadaje tego samego pytania. Pozwól mi zobaczyć, czy mogę to wyjaśnić odpowiednio:Filtrowanie nieistotnych aspektów z wyników Solr
Powiedz, że jestem sklep obuwniczy. Na mojej stronie mam trzy strony: jedną dla męskich butów, jedną dla kobiet i jedną dla dziecięcych. Powiedzmy, że mój stół do butów ma pole prod_group. Tak więc dla strony mężczyzn zapytanie to q = prod_group: men. Teraz powiedzmy, że jednym z aspektów, które chcę zapewnić, jest marka. q = prod_group: men & filter.field = marka
Kwestia, którą mam, to wyniki aspektu pokazujące wszystkie marki w mojej bazie danych, a nie tylko marki odnoszące się do obuwia męskiego. Innymi słowy, już wiem, że w linii "My Little Pony" jest zero męskich butów. Nie chcę wyświetlać My Little Pony w aspekcie marki. Ustawienie aspektu.mincount również nie jest tym, czego potrzebuję. Jeśli uruchomię kwerendę q = prod_group: men & fq = color: red & filter.field = brand, klient chce pokazać konsumentowi, że marka "Mighty Joe" nie ma żadnych czerwonych butów, więc nadal potrzebuję faset z liczba aspektów wynosi 0.
Zasadniczo mam nadzieję, że wyniki fasetowania będą oparte na wynikach zapytania podstawowego. Jak dotąd jedynym sposobem, w jaki to widzę, jest wykonanie dwóch zapytań: pierwszy z samym zapytaniem podstawowym i ustawieniem facet.mincount = 1, aby uzyskać listę odpowiednich aspektów, a następnie faktyczne zapytanie z facet.mincount z powrotem do 0, więc Mogę wymyślić, kiedy wyszarzyć pewne opcje, które nie są już dostępne w oparciu o już wybrane opcje aspektu.
Uruchomienie dwóch zapytań wydaje się nieco mniej niż eleganckie. facet.pivot może pomóc na dłuższą metę, ale wciąż używamy wersji 3.x i nie widzę, żeby to się wkrótce zmieniło. Czy przeoczyłem opcję zapytania/schematu/konfiguracji, która zrobi to, czego potrzebuję w jednym zapytaniu?