J'utilise Lucene.NET, qui est actuellement à jour avec Lucene 2.9. J'essaie de mettre en œuvre une sorte de sélection distincte, mais sans avoir besoin de forer dans tous les groupes. Je sais que Lucene 3.2 a une recherche à facettes qui peut résoudre cela, mais je n'ai pas le temps de le porter à 2.9 pour le moment. Dans tous les cas, lorsque vous effectuez une requête paginée avec un opérateur de tri, Lucene doit trouver tous les documents qui correspondent à la requête, les trier, puis prendre les N premiers résultats, où N est la taille de la page. Je voudrais construire quelque chose qui soit également appliqué après que la requête triée soit terminée, mais qui prend les N premiers résultats uniques et les renvoie. Je pense à utiliser un HashSet et l'un des champs indexés pour déterminer l'unicité. Je préférerais trouver un moyen d'étendre quelque chose dans Lucene que d'essayer de le faire une fois que les résultats sont déjà retournés pour des raisons de performances.Filtrer les résultats d'une requête triée dans Lucene.NET
Les filtres personnalisés semblent s'exécuter avant même que la requête principale ne soit appliquée et que les collecteurs personnalisés ne soient exécutés avant que le tri ne soit appliqué, à moins que vous ne procédiez au tri par l'identifiant de document de Lucene. Alors, quelle est la meilleure approche à ce problème? Un point dans la direction du bon composant à étendre vous obtiendrez la réponse sur celui-ci, un exemple de mise en œuvre vous donnera certainement la réponse. Merci à l'avance
Que voulez-vous dire par les résultats « uniques » ? Lucene renvoie les documents, qui doivent déjà être uniques dans votre index. – mathieu
Unique basé sur un champ autre que l'ID clé/document primaire. Comme une sélection distincte * ... Requête SQL – LaserJesus