lucene Hello World
生活随笔
收集整理的這篇文章主要介紹了
lucene Hello World
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
一個lucene創建索引和查找索引的樣例:
創建索引:
public class Indexer { private IndexWriter indexWriter; /*** 構造器實例化indexWriter* @throws Exception */ public Indexer(String indexPath) throws Exception { Directory directory = FSDirectory.open(Paths.get(indexPath));//索引存儲的位置 Analyzer analyzer = new StandardAnalyzer();//標準分析器 IndexWriterConfig iwc = new IndexWriterConfig(analyzer); indexWriter = new IndexWriter(directory, iwc); } /*** 關閉indexWriter* @param indexWriter* @throws IOException */ public void close() throws Exception { indexWriter.close(); } /*** 獲取文檔Document* @throws FileNotFoundException */ public Document getDocumnet(File f) throws Exception { Document doc = new Document(); doc.add(new TextField("content", new FileReader(f))); doc.add(new TextField("tittle",f.getName(),Field.Store.YES)); doc.add(new TextField("path",f.getCanonicalPath(), Field.Store.YES)); return doc; } /*** 索引當個文件* @throws Exception */ public void indexFile(File f) throws Exception { System.out.println(f.getName()); Document doc = this.getDocumnet(f); indexWriter.addDocument(doc); } /*** 索引一個目錄下的所有文件* @param filePath 目錄路徑* @return 索引文件的個數* @throws Exception */ public int index(String filePath) throws Exception { File[] files = new File(filePath).listFiles(); for(File f:files) { this.indexFile(f); } return indexWriter.numDocs(); } public static void main(String[] args) {String indexPath = "G:\\工作\\luence\\index";String dataPath = "G:\\工作\\luence\\data";Indexer indexer = null;int indexNum=0;try {indexer = new Indexer(indexPath);indexNum = indexer.index(dataPath);} catch (Exception e) {e.printStackTrace();}finally {try {indexer.close();} catch (Exception e) {e.printStackTrace();}}System.out.println("索引了"+indexNum+"個文件");} }查找索引:
public class Searcher { public static void search(String indexPath,String searchStr) throws Exception {Directory dir = FSDirectory.open(Paths.get(indexPath)); IndexReader indeReader = DirectoryReader.open(dir); IndexSearcher indexSearch = new IndexSearcher(indeReader);Analyzer analyzer = new StandardAnalyzer();//標準分詞器 QueryParser parser = new QueryParser("content", analyzer); Query query = parser.parse(searchStr); TopDocs td = indexSearch.search(query, 10); for(ScoreDoc sc:td.scoreDocs) { Document doc = indexSearch.doc(sc.doc); System.out.println(doc.get("tittle")); System.out.println(doc.get("path")); } } public static void main(String[] args) throws Exception { Searcher.search("G:\\工作\\luence\\index\\", "Hollywood"); } }?
轉載于:https://www.cnblogs.com/jnba/p/10522723.html
總結
以上是生活随笔為你收集整理的lucene Hello World的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 机器学习资料
- 下一篇: 坦克世界哪种坦克弹药多