Quelles sont les meilleures pratiques d'utilisation de Lucene.Net? ou où puis-je trouver un bon exemple d'utilisation de lucene.net?
Réponses
Trop de publicités?Si vous allez travailler avec Lucene, j'aimerais acheter un bon livre qui traite de A à Z. Lucene a une courbe d'apprentissage très forte (à mon avis). Ce n'est pas seulement de savoir comment rechercher votre qui est important - il est aussi question de l'indexation il. Faire une recherche de base est facile, mais la création d'un index qui se compose de plusieurs millions d'enregistrements de données et être encore capable de faire un foudre de recherche rapide, c'est possible, mais assez difficile. Il n'y a pas de tutoriel qui vous apprend que.
Je le recommande Lucene dans l'Action, la Deuxième Édition par Michael McCandless, Erik Hatcher, et Otis Gospodnetić. Si elle est écrite pour Lucene et pas Lucene.NET, qui ne devrait pas être un problème car les termonology et l'api sont fondamentalement les mêmes.
Toutefois, si vous êtes juste de lui donner un coup d'essayer, vous pourriez lire ce site. Le nom dit tout :-)
Nous utilisons fréquemment Lucene.NET lorsque les données est énorme et doit avoir des super temps de réponse rapide pour la lecture. En général, nous coller les données que nous avons besoin de la recherche ainsi que la clé pour nous permettre de dessiner la carte de nos résultats à la table de base de données qui a le reste des détails. Cela nous permet alors de rechercher un utilisateur (dans notre cas), la vérification de leur participation antérieure. Ce n'est pas seulement un nom d'utilisateur recherche, mais une recherche qui effectue une itération sur divers détails, en essayant de trouver si il y a d'autres instances de l'utilisateur (mais sous une forme différente). Un exemple de cela, nous sommes pour les utilisateurs d'identité (d'un système), de leur carte d'identité à partir d'un autre système, peut-être un ID à partir de l'un des fournisseurs de système, un cookie flash GUID, un des sites de cookie GUID, etc. Et comme nous trouvons un identificateur, nous recherchons d'autres instances de l'identificateur d'autres cas d'utilisateurs. Cela nous permet de dedup les utilisateurs de l'entrée dans l'un des nombreux systèmes (étant donné que leur participation dans tout système est possible qu'une seule fois par 24 heures). Dans SQL ce alogrithm (dont j'ai été imprécis sur) prendrait une éternité! Dans Lucene.NET il faut moins d'une seconde. Lucene a beaucoup plus de possibilités de recherche que SQL Server n'. La chose qu'il aspire à l'est de l'écriture ou de la mise à jour de votre index. C'est généralement la forme d'un emploi...tout à la fois. Toutefois, si vous avez besoin d'écrire à la mise à jour des index en temps réel, vous avez besoin d'écrire quelques petits malins code pour s'assurer que c'est écrit sur le verrouillage de mode (pensez à la mise en queue avec singleton) ou votre code de chevauchement et exploser!
Je couvre l'utilisation de Lucene.NET dans mon livre (ASP.NET de Réseautage Social), et vous pouvez trouver beaucoup d'aide ici.
Il y a un bel article expliquant la mise en œuvre de Lucene.NET: http://www.ifdefined.com/blog/post/2009/02/Full-Text-Search-in-ASPNET-using-LuceneNET.aspx
Le problème avec Lucene.NET est qu’il n’a pas de communauté active comme Lucene standard (java) - c’est donc comme si vous utilisiez toujours une ancienne version de Lucene. Bien que nous préférions .NET, nous avons décidé d'utiliser la version Java de Lucene pour cette raison. Si vous utilisez également Solr, son intégration est très simple.