2 votes

Indexer le contenu de mes vues ASP.NET MVC avec Lucene.NET

Je travaille sur le site Web d'un produit qui contient une grande quantité de texte. Le texte n'est pas stocké dans une base de données ou autre, il fait simplement partie des vues. J'aimerais ajouter une fonctionnalité de recherche de base au site Web avec Lucene.NET, mais je ne sais pas vraiment quelle est la meilleure façon de procéder.

J'ai de l'expérience avec Lucene.NET, mais seulement dans l'indexation d'enregistrements dans une base de données.

3voto

Prescott Points 3947

Je ne suis pas sûr de ce que vous entendez par partie de la vue ? Mais si c'est juste du texte qui est produit, pourquoi ne pas utiliser ce texte et l'ajouter en tant que document avec un champ supplémentaire qui vous permettra de rediriger vers la vue appropriée si vous la faites apparaître dans les résultats de recherche ? Quelque chose comme :

Document : ViewLink : Article/23 Texte : Bla bla bla...

en ajouter un pour chaque vue, puis rechercher dans votre index ?

Une autre solution consiste à charger vos vues à partir de l'index Lucene : recherchez l'article ID = 10, récupérez le texte dans l'index Lucene et placez-le dans votre vue de manière dynamique. Je ne suis pas sûr que ce soit vraiment la meilleure façon de procéder.

0voto

Panetta Points 31

Vous pourriez programmer une tâche pour télécharger une liste de pages requises en utilisant quelque chose comme WebClient, puis analyser le texte et l'indexer avec Lucene.

Si vous ne souhaitez pas maintenir une liste, vous pouvez faire en sorte que le WebClient suive les liens dont l'URL correspond à une regex (par exemple, certaines pages de votre nom de domaine). Cependant, il s'agit essentiellement d'écrire un robot d'exploration du Web et il existe probablement déjà des outils pour le faire.

Voir : https://stackoverflow.com/questions/3740529/good-net-based-open-source-web-crawler ou recherchez " .net web crawler ".

Vous pouvez aussi chercher une solution standard - cherchez "recherche de site".

L'option la plus simple du point de vue de l'indexation est d'avoir toutes les données pertinentes stockées dans une base de données - malheureusement, il semble que ce ne soit pas une option pour vous.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X