public void createIndex(){
IndexWriter writer = null
Analyzer analyzer = new IKAnalyzer(true)
try {
Directory directory= FSDirectory.open(new File(“索引的文件路径”))
if (IndexWriter.isLocked(directory)) {
IndexWriter.unlock(directory)
}
IndexWriterConfig iwConfig = new IndexWriterConfig(Version.LUCENE_35 ,analyzer)
iwConfig.setOpenMode(OpenMode.CREATE_OR_APPEND)
writer = new IndexWriter(directory , iwConfig)
writer.deleteAll()//清空索引
List<NewCourse>newCourseList = newCourseService.findNewCourseList()
Document doc = null
System.out.println("开始创建索引。。。。。。")
for(int i = 0i<list.size()i++){
Object obj = list.get(i)
doc = new Document()
doc.add(new Field("要索引的具体字段",“索引的值”,Field.Store.YES,Field.Index.NOT_ANALYZED_NO_NORMS))
}
System.out.println("创建索引结束。")
} catch (CorruptIndexException e) {
e.printStackTrace()
} catch (LockObtainFailedException e) {
e.printStackTrace()
} catch (IOException e) {
e.printStackTrace()
}finally{
try {
writer.commit()
writer.close()
} catch (CorruptIndexException e) {
e.printStackTrace()
} catch (IOException e) {
e.printStackTrace()
}
}
}
望采纳
lucene是一个公用的全文索引组件,它的目标是把各种各样格式的数据转化成lucene特有的索引文件格式,这样才能通过lucene的高速检索机制进行全文检索。你的数据来源可以是关系数据库,可以是word、execl、txt文档,可以是html网页,对于这些数据源,你必须将它们内部的数据读取出来,并封装成lucene的document实例,之后让lucene帮你构建索引。
举个例子:你的有一个用户数据库,里面存储了几十万的用户信息,你现在要对这个数据库进行全文索引,那么你要做的事情是:
1.写一段传统的JDBC程序,讲每条的用户信息从数据库读取出来
2.针对每条用户记录,建立一个lucene document
Document doc = new Document()
并根据你的需要,将用户信息的各个字段对应luncene document中的field 进行添加,如:
doc.add(new Field("NAME","USERNAME",Field.Store.YES,Field.Index.UN_TOKENIZED))
然后将该条doc加入到索引中, 如: luceneWriter.addDocument(doc)
这样袱常递端郛得店全锭户就建立了lucene的索引库
3.编写对索引库的搜索程序(看lucene文档),通过对lucene的索引库的查找,你可以快速找到对应记录的ID
4.通过ID到数据库中查找相关记录
ITjob里学。习到的,希望对你有所帮助
1.数据库中的索引分为两种类型,分别是普通索引、唯一索引。下面让我们来分别介绍一下这...2.第一种是普通索引,CREATE INDEX indexName ON mytable(...
3.第二种是唯一索引,它与普通索引是类似的,但也存在不同之处,不同之处在于索引列的值...
4.以上三张图分别为创建索引、修改表结构、创建表时直接指定的数据。而且还有四种方式来...
5.第一种方式:ALTER TABLE tbl_name ADD PRIMARY KEY (...
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)