Je fais un projet qui dois permettre de faire des recherches sur un fichier texte j'utilise lucene mais sa ne fonctionne pas. voila mon code si qqun a une idé ou est ma faute merci d'avanceee !!!!

Code d'indexation:

Code C# : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
//Création d'un nouvel index.
                IndexWriter writer = new IndexWriter(@"C:\Users\schaffora\Desktop\Test2\", new SimpleAnalyzer(), true);
            //Création d'un nouveau document.
                Document doc = new Document();
            //Céation de la variable qui va contenir le texte.
                string rawText;
            //Choix du type d'encodage
                Encoding objEncoding = Encoding.Default;
            // Lecture du fichier jusqu'à sa fin et récupération du texte dans rawText
                using (StreamReader sr = new StreamReader(path, objEncoding))
                {
                    rawText = (sr.ReadToEnd());
                }
                doc.Add(Field.Keyword("text", rawText));
                doc.Add(Field.Keyword("path", path));
            // ajout du document
                writer.AddDocument(doc);
                writer.Optimize();
                writer.Close();
            // Fermeture de l'index pour permettre une meilleure performance

Code pour la recherche :


Code C# : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Query query = new TermQuery(new Term("postBody", tbxMot.Text));
            //Choix de l'index (index que l'on a créé juste en dessus)
            IndexSearcher searcher = new IndexSearcher(@"C:\Users\schaffora\Desktop\Test2\");
            Hits hits = searcher.Search(query);
            DataTable dt = new DataTable();
            dt.Columns.Add("path", typeof(string));
            dt.Columns.Add("sample", typeof(string));
 
            for (int i = 0; i < hits.Length(); i++)
            {
                Document doc1 = hits.Doc(i);
                DataRow row = dt.NewRow();
                row["path"] = doc1.Get("path");
                dt.Rows.Add(row);
            }