diff --git a/pom.xml b/pom.xml
index 5192c9c..dde05fa 100644
--- a/pom.xml
+++ b/pom.xml
@@ -29,6 +29,11 @@
lucene-analyzers-common
8.6.3
+
+ org.apache.lucene
+ lucene-queryparser
+ 8.6.3
+
com.google.code.gson
gson
diff --git a/src/main/java/org/RI/P2/Searcher.java b/src/main/java/org/RI/P2/Searcher.java
new file mode 100644
index 0000000..2c70b43
--- /dev/null
+++ b/src/main/java/org/RI/P2/Searcher.java
@@ -0,0 +1,58 @@
+package org.RI.P2;
+
+import java.io.IOException;
+import java.nio.file.Paths;
+import java.text.ParseException;
+
+import org.apache.lucene.analysis.core.WhitespaceAnalyzer;
+import org.apache.lucene.index.DirectoryReader;
+import org.apache.lucene.index.IndexReader;
+import org.apache.lucene.store.Directory;
+import org.apache.lucene.store.FSDirectory;
+import org.apache.lucene.search.IndexSearcher;
+import org.apache.lucene.search.Query;
+import org.apache.lucene.search.TopDocs;
+import org.apache.lucene.queryparser.classic.QueryParser;
+
+public class Searcher {
+
+ IndexReader index;
+ String dataPath;
+ String indexPath;
+
+ Searcher(String dataPath, String indexPath) {
+ this.dataPath = dataPath;
+ this.indexPath = indexPath;
+ }
+
+ IndexSearcher createIndexSearcher() throws IOException {
+ Directory indexDirectory = FSDirectory.open(Paths.get(indexPath));
+ IndexReader indexReader = DirectoryReader.open(indexDirectory);
+ IndexSearcher searcher = new IndexSearcher(indexReader);
+ return searcher;
+ }
+
+ TopDocs searchFiles(String queryString, int resultNumber)
+ throws IOException, org.apache.lucene.queryparser.classic.ParseException {
+ IndexSearcher searcher = createIndexSearcher();
+ Query query = new QueryParser("abstract", new WhitespaceAnalyzer()).parse(queryString);
+ TopDocs topDocs = searcher.search(query, resultNumber);
+ return topDocs;
+ }
+
+ private static void usage() {
+ System.out.println("Usage: Searcher ");
+ System.exit(1);
+ }
+
+ public static void main(String[] args) throws IOException, ParseException {
+ if (args.length != 1) {
+ usage();
+ }
+ String dataDirectory = args[0];
+ String indexDirectory = ".index";
+ Indexer indexer = new Indexer(dataDirectory, indexDirectory);
+ indexer.populateIndex();
+ Searcher searcher = new Searcher(dataDirectory, indexDirectory);
+ }
+}