Lucene5.2.0+SQLite Demo
来源:互联网 发布:it is not until 编辑:程序博客网 时间:2024/04/25 10:18
1.索引建立:
import org.apache.lucene.analysis.standard.StandardAnalyzer;import org.apache.lucene.document.Document;import org.apache.lucene.document.Field;import org.apache.lucene.document.LongField;import org.apache.lucene.document.TextField;import org.apache.lucene.index.IndexWriter;import org.apache.lucene.index.IndexWriterConfig;import org.apache.lucene.store.Directory;import org.apache.lucene.store.FSDirectory;import java.nio.file.Paths;import java.sql.Connection;import java.sql.DriverManager;import java.sql.ResultSet;import java.sql.SQLException;import java.sql.Statement;public class testIndex { protected static String[] ids={"1", "2"}; protected static String[] content={"lv qin jie", "lv jian jun"}; private static Directory dir; public static void main(String[] args) throws Exception{ Connection connection = null; String pathFile="d:\\lucene\\temp\\index"; IndexWriter writer = new IndexWriter(FSDirectory.open(Paths.get(pathFile)), new IndexWriterConfig(new StandardAnalyzer())); try { // create a database connection Class.forName("org.sqlite.JDBC"); connection = DriverManager.getConnection("jdbc:sqlite:d:\\研究生\\data\\access.db"); Statement statement = connection.createStatement(); statement.setQueryTimeout(30); // set timeout to 30 sec. ResultSet rs = statement.executeQuery("select * from person"); while(rs.next()){ Document doc=new Document(); doc.add(new LongField("id", rs.getLong("id"), Field.Store.YES)); doc.add(new TextField("name", rs.getString("name"), Field.Store.YES)); writer.addDocument(doc); } }catch(SQLException e){ System.err.println(e.getMessage()); }finally{ try{ if(connection != null) connection.close(); if(writer != null) writer.close(); }catch(SQLException e){ // connection close failed. System.err.println(e); } } }}
2. 搜索
import java.io.IOException;import java.nio.file.Paths;import org.apache.lucene.analysis.Analyzer;import org.apache.lucene.analysis.standard.StandardAnalyzer;import org.apache.lucene.document.Document;import org.apache.lucene.index.DirectoryReader;import org.apache.lucene.index.IndexReader;import org.apache.lucene.queryparser.classic.ParseException;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.FSDirectory;public class testSearch { public static void main(String[] args) throws ParseException, IOException{ IndexReader reader = DirectoryReader.open(FSDirectory.open(Paths.get("d:\\lucene\\temp\\index"))); IndexSearcher searcher = new IndexSearcher(reader); Analyzer analyzer = new StandardAnalyzer(); String keyword = "wang"; QueryParser parser = new QueryParser("name",analyzer); if(!(keyword.isEmpty())){ Query query = parser.parse(keyword); TopDocs results = searcher.search(query, 100); ScoreDoc[] hits = results.scoreDocs; int i=0; for(ScoreDoc hit: hits){ Document document = searcher.doc(hit.doc); String idString = document.get("id"); String nameString = document.get("name"); System.out.println("id:"+idString+" name:"+nameString); } } }}
0 0
- Lucene5.2.0+SQLite Demo
- Lucene5 一个简单的Demo
- Lucene5.3.1之helloworld demo
- lucene5.2.1 检索文件夹文件Demo
- Luke for Lucene5.2.0
- sqlite demo
- SQLite demo
- SQLite JDBC Demo
- sqlite 数据库简单demo
- flex sqlite demo
- Android + sqlite simplecursorAdapter Demo
- Sqlite demo 和总结
- sqlite应用demo
- SQLite数据库简单Demo
- android sqlite 小型demo介绍
- Qt数据库SQLITE编程Demo
- Android SQlite使用实践Demo
- 簡單SQLite 數據庫操作Demo
- jQuery和CSS3超炫3D整屏垂直滚动页面特效
- Linux(Ubuntu)下面SecureFX 完全破解
- keil4编程环境技巧1:常用鼠标行首删除整行
- CSS定义鼠标移上图片链接,出现边框效果
- 实验三:学生工作管理系统asp和asp.cs代码
- Lucene5.2.0+SQLite Demo
- NSPoint、NSSize、NSRect、NSRange使用与Bool细节
- Android应用自动更新功能的代码实现
- C# 多线程 线程调度Dispatcher ,ManualResetEvent
- DevExpress中GridControl中实现checkbox多行选中
- SQL Server 2005 Reporting Services (x64) on Windows 2K8 -> CleanCurrentUserName() not found
- ajax替换iframe方法
- HDU 1224 Free DIY Tour--DP--(bug集锦)
- URAL 2035. Another Dress Rehearsal (乱搞)