J'utilise actuellement Lucene. Mon exigence est comme la boîte de recherche de facebook. Rechercher des utilisateurs et des amis. Mais dans mon exigence utilisateur ont des paramètres de confidentialité comme le nom, l'emplacement, l'adresse e-mail sont visibles par tout le monde ou seulement les amis. Il peut montrer et cacher ces champs à des amis et à d'autres membres de la communauté.Grails Searchable Plugin - Filtrage Résultat Set
J'ai mis en œuvre une recherche simple sur la base du nom, de l'emplacement et de l'adresse e-mail. Mais maintenant je modifie la recherche sur la base des paramètres de confidentialité.
Voici mon scénario ..
utilisateur A a des paramètres de confidentialité:
Nom est visible uniquement à des amis
Email est montré à tous
emplacement n'est pas montré à personne.
Si utilisateur X emplacement type de l'utilisateur A dans la zone de recherche, alors il ne devrait pas être dans les résultats. Mais si l'utilisateur X tapez Nom de Utilisateur A dans la boîte de recherche alors il devrait être montré parce que Utilisateur A n'a pas de nom restreint et il est visible à ses amis dans les paramètres de confidentialité.
Pouvez-vous s'il vous plaît me guider à l'approche. Faites-moi savoir si je n'ai pas clairement écrit mon exigence.
J'ai analysé les approches suivantes,
expliquer de 1- IndexSearcher méthode (Il sera frappé la performance globale)
2- Filtres Mais pourrait exploré pas obtenir beaucoup
Mon approche:
Obtenez le résultatSet sur la base du nom
Obtenez le résultatSet sur la base de l'emplacement
Obtenez le résultatSet sur la base de l'adresse e-mail
Boucle sur chaque jeu de résultats et applique les conditions relatives aux paramètres de confidentialité et exclut les éléments en fonction des paramètres de confidentialité. Et à la fin, fusionner tous les 3 résultats ensemble.
S'il y a une autre approche? S'il vous plaît partager avec moi. Merci.
J'ai également analyser comment fonctionne le surligneur. Mais il suffit de vérifier à partir du texte. –