Obecnie używam Lucene. Moje wymaganie jest jak pole wyszukiwania facebook. Wyszukaj użytkowników i znajomych. Ale w moim wymaganiu użytkownik ma ustawienia prywatności, takie jak imię, lokalizacja, adres e-mail są widoczne dla wszystkich lub tylko znajomych. Może pokazywać i ukrywać te pola przed przyjaciółmi i innymi członkami społeczności.Grails Searchable Plugin - Filtering Result Set
Zaimplementowałem proste wyszukiwanie na podstawie nazwy, lokalizacji i adresu e-mail. Ale teraz modyfikuję wyszukiwanie na podstawie ustawień prywatności.
Tu jest mój scenariusz ..
Użytkownik A ma ustawienia prywatności:
Nazwa jest widoczne tylko dla znajomych
email jest pokazane na każdy jeden
lokalizacja nie jest pokazany jednego.
Jeśli User X lokalizacja typ użytkownikowi w polu wyszukiwania to nie powinno być w wynikach. Ale jeśli użytkownik X type Nazwa Użytkownik A w polu wyszukiwania, powinien on zostać wyświetlony, ponieważ Użytkownik A nie ograniczył nazwy i jest widoczny dla jego znajomych w ustawieniach prywatności.
Czy możesz mnie poprowadzić do podejścia.
Daj mi znać, jeśli nie napisałem wyraźnie mojego wymogu.
mam analizowane następujące podejścia, wyjaśnić sposób (To będzie hit ogólną wydajność)
1- IndexSearcher za
2- zbadane Filtry ale nie mógł uzyskać znacznie
moje podejście:
Pobierz wynikUstaw na podstawie nazwy
Otrzymaj wynikUstaw na podstawie lokalizacji
Pobierz wynik Ustaw na podstawie adresu e-mail
Zapętlaj na każdym zestawie wyników 3 i stosuj warunki związane z ustawieniami prywatności i wykluczaj elementy na podstawie ustawień prywatności. I na koniec połącz wszystkie 3 zestawy wyników.
Jeśli istnieje inne podejście? Proszę, podziel się ze mną. Dzięki.
Przeanalizowałem także sposób działania zakreślacza. Ale sprawdza się tylko od tekstu. –