From 8a8a6d492bfcb5956b87fdc255fe2265b859785a Mon Sep 17 00:00:00 2001 From: =?utf8?q?V=C3=A1s=C3=A1ry=20D=C3=A1niel?= Date: Fri, 13 Sep 2019 11:47:27 +0000 Subject: [PATCH] git-tfs-id: [http://tfs.userrendszerhaz.hu:8080/tfs/DefaultCollection]$/MediaCube;C31526 --- server/hu.user.mediacube.indexer/pom.xml | 16 ++++ .../hu/user/mediacube/indexer/TestLucene.java | 74 +++++++++++++++++++ 2 files changed, 90 insertions(+) create mode 100644 server/hu.user.mediacube.indexer/src/test/java/hu/user/mediacube/indexer/TestLucene.java diff --git a/server/hu.user.mediacube.indexer/pom.xml b/server/hu.user.mediacube.indexer/pom.xml index ea8b8a69..fecdf5fd 100644 --- a/server/hu.user.mediacube.indexer/pom.xml +++ b/server/hu.user.mediacube.indexer/pom.xml @@ -20,6 +20,22 @@ 1.8 + + + org.apache.lucene + lucene-core + 8.2.0 + + + org.apache.lucene + lucene-analyzers + 3.6.2 + + + org.apache.lucene + lucene-queryparser + 8.2.0 + org.apache.solr solr-solrj diff --git a/server/hu.user.mediacube.indexer/src/test/java/hu/user/mediacube/indexer/TestLucene.java b/server/hu.user.mediacube.indexer/src/test/java/hu/user/mediacube/indexer/TestLucene.java new file mode 100644 index 00000000..ac64d932 --- /dev/null +++ b/server/hu.user.mediacube.indexer/src/test/java/hu/user/mediacube/indexer/TestLucene.java @@ -0,0 +1,74 @@ +package hu.user.mediacube.indexer; + +import java.io.IOException; +import java.nio.file.Paths; +import java.util.ArrayList; +import java.util.List; + +import org.apache.lucene.analysis.standard.StandardAnalyzer; +import org.apache.lucene.document.Document; +import org.apache.lucene.document.Field.Store; +import org.apache.lucene.document.TextField; +import org.apache.lucene.index.DirectoryReader; +import org.apache.lucene.index.IndexReader; +import org.apache.lucene.index.IndexWriter; +import org.apache.lucene.index.IndexWriterConfig; +import org.apache.lucene.queryparser.classic.QueryParser; +import org.apache.lucene.search.IndexSearcher; +import org.apache.lucene.search.Query; +import org.apache.lucene.search.ScoreDoc; +import org.apache.lucene.search.TopDocs; +import org.apache.lucene.store.Directory; +import org.apache.lucene.store.FSDirectory; +import org.junit.Test; + +public class TestLucene { + StandardAnalyzer analyzer = new StandardAnalyzer(); + String indexPath = "/opt/lucence"; + Directory directoryIndex; + + private void createDocument(IndexWriter indexWritter) throws IOException { + Document document; + + document = new Document(); + document.add(new TextField("title", "szallonnás jóreggelt", Store.YES)); + document.add(new TextField("body", "vásáry dániel", Store.YES)); + indexWritter.addDocument(document); + + indexWritter.close(); + } + + public List search(String inField, String queryString) throws Exception { + + // QueryParser queryParser = new QueryParser("", analyzer); + // string special = "bodytext:" + text + " OR title:" + text; + + Query query = new QueryParser(inField, analyzer).parse(queryString); + IndexReader indexReader = DirectoryReader.open(directoryIndex); + IndexSearcher searcher = new IndexSearcher(indexReader); + TopDocs topDocs = searcher.search(query, 10); + List ret = new ArrayList(); + for (ScoreDoc scoreDoc : topDocs.scoreDocs) { + ret.add(searcher.doc(scoreDoc.doc)); + } + return ret; + } + + @Test + public void test() { + try { + directoryIndex = FSDirectory.open(Paths.get(indexPath)); + + IndexWriterConfig indexWriterConfig = new IndexWriterConfig(analyzer); + IndexWriter indexWritter = new IndexWriter(directoryIndex, indexWriterConfig); + + //createDocument(indexWritter); + + List search = search("body", "dániel"); + System.out.println(search.size()); + } catch (Exception e) { + System.out.println(e.getMessage()); + } + } + +} -- 2.54.0