首页 > 代码库 > 代码片段,lucene基本操作(基于lucene4.10.2)
代码片段,lucene基本操作(基于lucene4.10.2)
1.最基本的创建索引:
@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. } }
<script type="text/javascript">// </script><script type="text/javascript" src="http://www.cnblogs.com/static/js/3rd/ueditor1.2/third-party/SyntaxHighlighter/shCore.js"></script><script type="text/javascript" src="https://note-static.sdo.com/p?/static/js/lib~j_1161,lib~j.ui_1998,lib~j.json-2.2_1161,my~note.younimsg_1161,lib~py_1161,my~note.layer_1922,my~note.lightbox_1161,my~note.content_3279.js"></script>
代码片段,lucene基本操作(基于lucene4.10.2)
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。