代码片段,lucene基本操作(基于lucene4.10.2)
2014-12-08 22:53
183 查看
1.最基本的创建索引:
2.使用FieldType创建索引
搜索示例:
// window.iNotePageConfig = {
userId: '634910873007246243',
preivewSitePath:'http://preview.files.note.sdo.com/'
};
window.iNote = {};
// ]]>
@Test public void testIndex(){ try { Directory directory = FSDirectory.open(new File(LUCENE_DIRECTORY)); IndexWriter indexWriter = new IndexWriter(directory,new IndexWriterConfig(Version.LATEST,new StandardAnalyzer())); Document document = new Document(); TextField titleFiled = new TextField("name","jiaoyiping", Field.Store.YES); document.add(titleFiled); indexWriter.addDocument(document); indexWriter.commit(); indexWriter.close(); } catch (Exception e) { e.printStackTrace(); //To change body of catch statement use File | Settings | File Templates. } }
2.使用FieldType创建索引
//使用FieldType创建Field(4.X之后才有) @Test public void testCreateIndexUseFieldType(){ try { Directory directory = FSDirectory.open(new File(LUCENE_DIRECTORY)); IndexWriter indexWriter = new IndexWriter(directory,new IndexWriterConfig(Version.LATEST,new StandardAnalyzer())); Document document = new Document(); FieldType titleType = new FieldType(); titleType.setIndexed(true);//索引选项 titleType.setStored(true); //存储选项 Field field = new Field("title","下班",titleType); TextField titleFiled = new TextField("name","jiaoyiping", Field.Store.YES); document.add(titleFiled); document.add(field); indexWriter.addDocument(document); indexWriter.commit(); indexWriter.close(); } catch (Exception e) { e.printStackTrace(); //To change body of catch statement use File | Settings | File Templates. } }
搜索示例:
/** * 搜索示例 */ @Test public void testQuery(){ try { IndexReader indexReader = DirectoryReader.open(FSDirectory.open(new File(LUCENE_DIRECTORY))); IndexSearcher searcher = new IndexSearcher(indexReader); QueryParser queryParser = new QueryParser("title",new StandardAnalyzer()); Query query = queryParser.parse("下班"); ScoreDoc[] docs = searcher.search(query,20).scoreDocs; //命中的数组 for(ScoreDoc sd:docs){ int docNumber = sd.doc; System.out.println("文档号: "+docNumber); Document doc = searcher.doc(docNumber);//根据文档号来查询文档 System.out.println(doc.get("name")); } } catch (Exception e) { e.printStackTrace(); //To change body of catch statement use File | Settings | File Templates. } }
// window.iNotePageConfig = {
userId: '634910873007246243',
preivewSitePath:'http://preview.files.note.sdo.com/'
};
window.iNote = {};
// ]]>
相关文章推荐
- 大连实训之基于MFC的对数据库的基本操作(整体代码)
- 基于Elasticsearch2.1.1的JavaAPI基本操作代码示例
- winform中一些基本操作的代码
- 生成试题基本算法和代码片段
- 数据库基本操作小摘(代码由mysql-essential-5.1.50-win32测试通过)
- 代码基本操作 -- 读写文件
- NSArray 的基本操作代码例子
- 『原创』DX图形显示基本流程(基于MESH静态模型绘制----托管代码)
- VIM经典代码编辑器的基本操作指令
- [转]基于Cmockery和TDD开发循环Queue结构和基本操作
- java 操作颜色选择器和打印机实现打印功能【代码片段】
- Berkeley db 基本操作代码(基础)
- 基于单链表的列表基本操作 类C语言实现
- Lucene2.0中最常用的基本操作
- jquery中对表单的基本操作代码
- (转)基于MapWinGis开发探索(二)——注册、加载、基本操作
- [转]c#有关winform的两个代码片段(多线程操作窗体控件与窗体淡入淡出效果)
- essential c++ 基于第二章的内容采用面向过程的方法实现猜字游戏的基本实现代码
- [技术学习]基于MSXML实现DOM操作的VC++代码
- 数据库基本操作小摘(代码由mysql-essential-5.1.50-win32测试通过)