1.用户发表一篇文章,即时添加索引.
2.用户修改一篇文章,即时更新索引.
3.用户删除一篇文章,即时删除索引.
/**
* 添加文章,除向数据库添加文章外,为该文章创建索引
*
* @return
* @throws Exception
*/
public String articleAdd() throws Exception {
Integer articleId = this.articleManager.articleInsert(article);
article.setId(articleId);
this.createIndex(article);
return SUCCESS;
}
/**
* 为该文章创建索引的方法
*
* @return
* @throws Exception
*/
public void createIndex(Article article) throws Exception {
// 实例化分词器,使用的是中文分词器
Analyzer analyzer = new PaodingAnalyzer();
// 指定要保存的文件路径并保存到FSDirectory中
System.out.println(URLDecoder.decode(
AnalyzerAction.class.getResource("/date/index/article/")
.toString(), "UTF-8").substring(6));
FSDirectory directory = FSDirectory.getDirectory(URLDecoder.decode(
AnalyzerAction.class.getResource("/date/index/article/")
.toString(), "UTF-8").substring(6));
// true表示覆盖原来已经创建的索引,如果是false表示不覆盖,而是继续添加索引
IndexWriter writer = new IndexWriter(directory, analyzer, false);
Document doc = new Document();
doc.add(new Field("id", String.valueOf(article.getId()),
Field.Store.YES, Field.Index.UN_TOKENIZED));
doc.add(new Field("article_title", article.getArticleTitle(),
Field.Store.YES, Field.Index.TOKENIZED));
String content = FunctionUtil.Html2Text(article.getArticleContent());
doc.add(new Field("article_content", content, Field.Store.YES,
Field.Index.TOKENIZED));
writer.addDocument(doc);
writer.optimize();
writer.close();
}
public void deleteIndex(Article article)throws Exception{
// 实例化分词器,使用的是中文分词器
Analyzer analyzer = new PaodingAnalyzer();
// 指定要保存的文件路径并保存到FSDirectory中
System.out.println(URLDecoder.decode(
AnalyzerAction.class.getResource("/date/index/article/")
.toString(), "UTF-8").substring(6));
FSDirectory directory = FSDirectory.getDirectory(URLDecoder.decode(
AnalyzerAction.class.getResource("/date/index/article/")
.toString(), "UTF-8").substring(6));
// true表示覆盖原来已经创建的索引,如果是false表示不覆盖,而是继续添加索引
IndexWriter writer = new IndexWriter(directory, analyzer, false);
writer.deleteDocuments(new Term("id",String.valueOf(article.getId())));
writer.optimize();
writer.close();
}
分享到:
相关推荐
索引更新索引更新索引更新索引更新索引更新索引更新索引更新索引更新索引更新
nexus index索引手动更新,不需要等待nexus自动更新很慢的下载速度,节约时间
slor定时增量更新索引dataimport.properties
solr增量导入更新索引包
Mybatis Plus 自定义批量插入或批量更新(根据唯一索引)
oracle 分区索引,本地索引,全局索引的区别
oracle rac环境下索引热块的处理思路oracle rac环境下索引热块的处理思路
关于索引的介绍,以及b+树结构图,两种索引性能比较,索引优化建议
下面小编就为大家分享一篇完美解决webstorm启动索引文件卡死的问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
漫谈数据库索引漫谈数据库索引漫谈数据库索引漫谈数据库索引
SQL Server 索引结构及其使用(聚集索引和非聚集索引)的区别与实例讲解,提高查询速度。
lucene建立数据库索引的问题,在这里,把其中的一些问题补充说明,希望对大家有新的帮助,希望大家相互提出问题,相互学习,共同进步!!
MySQL索引 聚集索引 如果你想了解MySQL索引查询优化,你首先应该对MySQL数据组织结构、B-Tree索引、聚集索引,次要索引有一定的了解,才能够更好地理解MySQL查询优化行为。这里主要探讨MySQL InnoDB的聚集索引。
1.索引的创建与使用 2.创建索引的原则 3.索引的分类 4.创建索引的多种方法 5.管理索引 6.索引优化 7.查看、修改索引属性 8.修改索引名 9.删除索引
对XML数据建立有效的索引,是左右XML数据处理性能的重要因素.深入地讨论了目前XML索引 技术的研究现状,将XML索引技术分为两大类:节点记录类索引(本身还可以分为3个小的类型)和结构摘要类 索引.根据XML数据查询...
型字段上,更新索引将会花销很多的时间。如在文章内容字段里用lik e 语句搜索一个关键字, 当数据表里的内容很多时,这个时间可能会让人难以忍受。 在SQL Server 中提供了一种名为全文索引的技术,可以大大提高从长...
创建索引 数据索引 课程目标 理解 —— 创建索引的语法; 掌握 —— 在已有表上创建索引的方法; 掌握 —— 在修改表时添加索引的方法; 掌握 —— 在创建表时创建索引的方法。 创建索引 使用CREATE INDEX语句创建...
详细介绍数据库中非聚集索引,聚集索引,索引,模式的各个内容与区别。
sql学习 索引更新开销_普通表更新(索引是关键).sql
数据库 索引 优化 数据库索引好比是一本书前面的目录,能加快数据库的查询速度。 例如这样一个查询:select * from table1 where id=44。如果没有索引,必须遍历整个表,直到ID等于44的这一行被找到为止;有了索引...