ITPub博客

首页 > 应用开发 > Java > LuceneTest

LuceneTest

原创 Java 作者:21ca 时间:2016-12-15 17:11:41 0 删除 编辑

点击(此处)折叠或打开

  1.         <dependency>
  2.             <groupId>org.apache.lucene</groupId>
  3.             <artifactId>lucene-queryparser</artifactId>
  4.             <version>6.3.0</version>
  5.         </dependency>
  6.         <dependency>
  7.             <groupId>org.apache.lucene</groupId>
  8.             <artifactId>lucene-analyzers-common</artifactId>
  9.             <version>6.3.0</version>
  10.         </dependency>


点击(此处)折叠或打开

  1. package test;

  2. import org.apache.lucene.analysis.standard.StandardAnalyzer;
  3. import org.apache.lucene.document.Document;
  4. import org.apache.lucene.document.Field.Store;
  5. import org.apache.lucene.document.TextField;
  6. import org.apache.lucene.index.DirectoryReader;
  7. import org.apache.lucene.index.IndexWriter;
  8. import org.apache.lucene.index.IndexWriterConfig;
  9. import org.apache.lucene.queryparser.classic.QueryParser;
  10. import org.apache.lucene.search.IndexSearcher;
  11. import org.apache.lucene.search.Query;
  12. import org.apache.lucene.search.ScoreDoc;
  13. import org.apache.lucene.store.RAMDirectory;

  14. public class LuceneTest {

  15.     private static RAMDirectory directory = new RAMDirectory();

  16.     public static void createIndex(String data) throws Exception {
  17.         System.out.println("Create Index for :" + data);

  18.         IndexWriter indexWriter = new IndexWriter(directory, new IndexWriterConfig());
  19.         Document document = new Document();
  20.         document.add(new TextField("content", data, Store.YES));
  21.         indexWriter.addDocument(document);
  22.         indexWriter.commit();
  23.         indexWriter.close();
  24.     }

  25.     public static void searchIndex(String text) throws Exception {
  26.         long time = System.currentTimeMillis();
  27.         DirectoryReader ireader = DirectoryReader.open(directory);
  28.         IndexSearcher isearcher = new IndexSearcher(ireader);

  29.         QueryParser parser = new QueryParser("content", new StandardAnalyzer());
  30.         Query query = parser.parse(text);

  31.         ScoreDoc[] hits = isearcher.search(query, 1000).scoreDocs;

  32.         for (ScoreDoc hit : hits) {
  33.             Document hitDoc = isearcher.doc(hit.doc);
  34.             System.out.println("Found: " + hitDoc.get("content"));
  35.             System.out.println(hit);
  36.         }
  37.         ireader.close();
  38.         directory.close();
  39.         System.out.println("Search----:" + (System.currentTimeMillis() - time) + "ms\n");
  40.     }


  41.     public static void main(String[] args) throws Exception {
  42.         createIndex("hello man");
  43.         createIndex("two man come, man, man");
  44.         searchIndex("man");
  45.     }
  46. }


来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/10742815/viewspace-2130712/ ,如需转载,请注明出处,否则将追究法律责任。

上一篇: 我所理解的J2EE
下一篇: PDFSpliter
请登录后发表评论 登录
全部评论

注册时间:2009-03-24

  • 博文量
    58
  • 访问量
    104835