Affichage du résultat d'un programme java sur une interface
Bonsoir, j'ai besoin de votre aide , je veux afficher le résultat d'un programme en java d'un moteur de recherche basé sur la librairie Lucene open source sur une interface qui permet de saisir la requête de l'utilisateur et de renvoyer le résultat au lieu de console, mais je sais pas comment faire, voici le code java :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98
| import java.io.File;
import java.io.FileReader;
import java.io.Reader;
import org.apache.lucene.analysis.Analyzer;
import org.apache.lucene.analysis.ar.ArabicAnalyzer;
import org.apache.lucene.document.Document;
import org.apache.lucene.document.Field;
import org.apache.lucene.index.IndexReader;
import org.apache.lucene.index.IndexWriter;
import org.apache.lucene.index.IndexWriter.MaxFieldLength;
import org.apache.lucene.queryParser.QueryParser;
import org.apache.lucene.search.IndexSearcher;
import org.apache.lucene.search.Query;
import org.apache.lucene.search.TopDocs;
import org.apache.lucene.store.Directory;
import org.apache.lucene.store.FSDirectory;
import org.apache.lucene.store.SimpleFSDirectory;
import org.apache.lucene.util.Version;
@SuppressWarnings("deprecation")
public class Lucenetry {
public static final String files = "C:/Lucene/data";
public static final String index = "C:/Lucene/indexes";
public static void createIndex() {
System.out.println("Creating indexes....");
try {
// Store the index in file
Directory directory = new SimpleFSDirectory(new File(index));
IndexWriter iwriter = new IndexWriter(directory, new ArabicAnalyzer(Version.LUCENE_36), true,
MaxFieldLength.UNLIMITED);
File dir = new File(files);
File[] files = dir.listFiles();
for (File file : files) {
System.out.println(file.getPath());
Document doc = new Document();
doc.add(new Field("path", file.getPath(), Field.Store.YES,
Field.Index.ANALYZED));
Reader reader = new FileReader(file.getCanonicalPath());
doc.add(new Field("contents", reader));
iwriter.addDocument(doc);
}
iwriter.optimize();
iwriter.close();
} catch (Exception e) {
e.printStackTrace();
}
}
public static void searchIndex(String searchString) {
System.out.println("Searching.... '" + searchString + "'");
try {
IndexReader reader = IndexReader.open(FSDirectory.open(new File(
index)), true);
IndexSearcher searcher = new IndexSearcher(reader);
Analyzer analyzer = new ArabicAnalyzer(Version.LUCENE_36);
QueryParser qp = new QueryParser(Version.LUCENE_36, "contents",analyzer);
Query query = qp.parse(searchString); // parse the query and construct the Query object
TopDocs hits = searcher.search(query, 100); // run the query
if (hits.totalHits == 0) {
System.out.println("No data found.");
} else {
for (int i = 0; i < hits.totalHits; i++) {
Document doc = searcher.doc(hits.scoreDocs[i].doc); // get the next document
String url = doc.get("path"); // get its path field
System.out.println("Found in :: " + url);
}
}
} catch (Exception e) {
e.printStackTrace();
}
}
public static void main(String[] args) {
createIndex();
searchIndex( "الحفاظ على البيئة");
}
} |