Je suis en train d'écrire une application interne qui contient plusieurs informations textuelles ainsi qu'un certain nombre de données sur ces textes. Ces éléments de données seront conservés dans une base de données (SQL Server, bien que cela puisse changer) dans l'ordre d'entrée. Je voudrais être en mesure de rechercher les informations les plus pertinentes, les plus pertinentes étant celles qui se trouvent en haut de la page. À l'origine, je me suis penché sur l'utilisation de la recherche en texte intégral de SQL Server, mais ce n'est pas aussi flexible que je l'avais espéré pour mes autres besoins. Il me semble donc que je devrais développer ma propre solution. D'après ce que je comprends ce qui est nécessaire est un inverted index, puis pour le contenu de l'index inversé à restaurer et à modifier en fonction des résultats de l'information supplémentaire détenue (bien que pour l'instant, cela peut être laissé pour une date ultérieure Je veux juste que l'index inversé indexe le texte principal de la table de base de données/chaînes fournies).Rédaction d'un index inversé en C# pour une application de recherche d'information
J'ai eu une chance d'écrire ce code en Java en utilisant un Hashtable avec la clé comme les mots et la valeur comme une liste des occurrences du mot mais en toute honnêteté je suis encore assez nouveau chez C# et ont seulement vraiment utilisé des choses comme DataSets et DataTables lors du traitement des informations. Si demandé, je téléchargerai le code Java dès que j'aurai vidé ce portable de virus.
Si un ensemble d'entrées est donné à partir d'une table ou d'une liste de chaînes, comment créer un index inversé en C# qui sera de préférence sauvegardé dans un DataSet/DataTable? J'ai oublié de mentionner que j'ai déjà essayé Lucene et Nutch, mais j'ai besoin de ma propre solution car modifier Lucene pour répondre à mes besoins prendrait beaucoup plus de temps que d'écrire un index inversé. Je vais gérer beaucoup de méta-données qui auront aussi besoin d'être manipulées une fois l'index inversé de base terminé, donc tout ce dont j'ai besoin pour l'instant est une recherche basique de texte intégral sur une zone utilisant l'index inversé. Enfin, travailler sur un index inversé n'est pas quelque chose que je dois faire tous les jours, donc ce serait génial d'avoir un crack.
Voici un autre index inversé C# basé sur des génériques: http://www.aleandmusic.com/InvertedIndex.aspx –