修改mainTest测试类
public class mainTest {
/**
* Function:抓取网页内容
* @author JLC
* @return
*/
public static List<Document> getWebContentDocuments(){
List<Document> docs = new ArrayList<Document>();
WebContent wc = new WebContent();
Document doc1 = PackContentObject.convertContentToDoc(wc.getContentFromSite("http://news.163.com"));
docs.add(doc1);
Document doc2 = PackContentObject.convertContentToDoc(wc.getContentFromSite("http://news.sohu.com/"));
docs.add(doc2);
return docs;
}
/**
* 创建索引
*/
public static void createSearchEngineData(){
SearchEngineCore se = SearchObject.getInstance().getLuceneContext("search");
List<Document> docList = getWebContentDocuments();
for(Document doc:docList){
try{
se.getTw().addDocument(doc);
se.commitIndex();
se.refreshData();
se.getNRTManager().maybeRefresh();
}catch(Exception e){
e.printStackTrace();
}
}
}
public static void main(String args[]){
//创建索引数据
//createSearchEngineData();
//查询索引
//searchContent("网易新闻");
//更新所有title=网易新闻 的索引 如果title=网易新闻 的索引有多条,更新后只会全部删除
Term term = new Term("title","网易新闻");
ContentObject content =new ContentObject();
content.setTitle("test");
content.setContent("测试内容");
updateContent(term,content);
//删除title=test 的索引
deleteContent("test");
}
/**
* 创建搜索方法
* @param keyWord
*/
public static void searchContent(String keyWord){
//List<ContentObject> searcheResult = new ArrayList<ContentObject>();
try{
/*
Version v = Version.LUCENE_42;
//取得查询对象
IndexReader[] readers = SearchObject.getInstance().getSearcherReads();
//多域查询
MultiReader mReaders = new MultiReader(readers);
IndexSearcher indexSearch = new IndexSearcher(mReaders);
//自带的标准分词
Analyzer analyzer =new StandardAnalyzer(v);
//创建boolean查询
BooleanQuery query = new BooleanQuery();
String[] field = {"title", "content"};
BooleanClause.Occur[] flags = new BooleanClause.Occur[2];
flags[0] = BooleanClause.Occur.SHOULD;
flags[1] = BooleanClause.Occur.SHOULD;
Query query1 = MultiFieldQueryParser.parse(v, QueryParser.escape(keyWord), field, flags, analyzer);
//必须满足该查询条件
query.add(query1, Occur.MUST);
*/
//精确查询,TermQuery 里面内容必须完全匹配才能查询到结果
IndexSearcher indexSearch = SearchObject.getInstance().getSearcher("search");
TermQuery query = new TermQuery(new Term("title","网易新闻"));
//10000为最多查询条数
TopScoreDocCollector topCollector = TopScoreDocCollector.create(10000, true);
indexSearch.search(query, topCollector);
//取得查询结果
TopDocs topDocs = topCollector.topDocs();
int resultCount=topDocs.totalHits;
for(int i=0;i<resultCount;i++){
Document doc = indexSearch.doc(topDocs.scoreDocs[i].doc);
System.out.println("标题:"+doc.get("title"));
System.out.println("内容:"+doc.get("content").substring(0,200));
}
System.out.println("查询结果条数:"+resultCount);
}catch(Exception e){
e.printStackTrace();
}
}
/**
* 删除索引内容
*/
public static void deleteContent(String title){
try{
SearchEngineCore se = SearchObject.getInstance().getLuceneContext("search");
se.getTw().deleteDocuments(new Term("title",title));
se.commitIndex();
se.refreshData();
se.getNRTManager().maybeRefresh();
}catch(Exception e){
e.printStackTrace();
}
}
/**
* 更新索引内容
* @param term 原索引
* @param content 更新的内容
*/
public static void updateContent(Term term,ContentObject content ){
try{
SearchEngineCore se = SearchObject.getInstance().getLuceneContext("search");
Document doc = PackContentObject.convertContentToDoc(content);
se.getTw().updateDocument(term,doc);
se.commitIndex();
se.refreshData();
se.getNRTManager().maybeRefresh();
}catch(Exception e){
e.printStackTrace();
}
}
}
分享到:
相关推荐
第18节 - 18-Cassandra表修改-删除-清空 第19节 - 19-在普通列创建索引 第20节 - 20-插入数据-设置有效期 第21节 - 21-查询数据-在查询时的索引使用 第22节 - 22-更新列数据 第23节 - 23-删除和-批量操作
18-主键-唯一-普通索引创建及删除小结.avi 19-DML语句之insert知识讲解.avi 20-DQL之select知识实战讲解.avi 21-DQL之select多表连表查询实战.avi 22-利用explain查看sql语句的执行计划.avi 23-DML之修改表中的记录...
6.3 创建、修改和删除索引 6.4 明智地决定何时何地使用何种索引 6.5 维护索引 6.6 小结 第7章 更高级的索引结构 7.1 XML索引 7.2 用户定义的数据类型 7.3 层次数据 7.4 空间数据 7.5 ...
6.3 创建、修改和删除索引 6.4 明智地决定何时何地使用何种索引 6.5 维护索引 6.6 小结 第7章 更高级的索引结构 7.1 XML索引 7.2 用户定义的数据类型 7.3 层次数据 7.4 空间数据 7.5 ...
6.3 创建、修改和删除索引 6.4 明智地决定何时何地使用何种索引 6.5 维护索引 6.6 小结 第7章 更高级的索引结构 7.1 XML索引 7.2 用户定义的数据类型 7.3 层次数据 7.4 空间数据 7.5 ...
在商品类型管理页面中可以查看索引,商品类型等内容,并进行详情,修改和删除操作;如图5-5所示。 图5-5商品类型管理界面图 商品信息管理;在商品信息管理页面中可以查看索引,商品编号,商品名称,商品类型,数量...
[更改]重置菜单标签默认索引 [增强]语言标签增强,允许变量 [优化]更改频道列表获取方式,优化ac_list标签的row 参数 [增强]增加会员等级上传选项设置,增加默认上传空间大小选项,优化上传选项提示 [增强]添加...
索引 7-26 索引类型 7-27 B 树索引 7-28 位图索引 7-30 索引选项 7-32 创建索引 7-34 什么是视图 7-35 创建视图 7-36 序列 7-37 创建序列 7-38 使用序列 7-40 临时表 7-41 临时表:注意事项 7-43 数据...
6.3 创建、修改和删除索引 6.4 明智地决定何时何地使用何种索引 6.5 维护索引 6.6 小结 第7章 更高级的索引结构 7.1 XML索引 7.2 用户定义的数据类型 7.3 层次数据 7.4 空间数据 7.5 ...
6.3 创建、修改和删除索引 6.4 明智地决定何时何地使用何种索引 6.5 维护索引 6.6 小结 第7章 更高级的索引结构 7.1 XML索引 7.2 用户定义的数据类型 7.3 层次数据 7.4 空间数据 7.5 ...
6.3 创建、修改和删除索引 6.4 明智地决定何时何地使用何种索引 6.5 维护索引 6.6 小结 第7章 更高级的索引结构 7.1 XML索引 7.2 用户定义的数据类型 7.3 层次数据 7.4 空间数据 7.5 ...
在商品信息管理页面中可以查看索引,商品编号,商品名称,商品类型,数量,价格,图片,产地,生产日期,保质期,商品详情等内容,并进行详情,购买,修改和删除操作 购买商品管理;在购买商品管理页面中可以查看索引...
04 异常处理的其他内容 05 什么时候用异常处理 06 什么是socket 07 套接字发展及分类 08 基于tcp协议的套接字编程 09 socket底层工作原理解释 10 tcp三次握手与四次挥手 第30章 01 上节课复习 02 客户端服务端循环...
处理方法:用 Check 工具检测,如果还不行就把所有的关系和索引都删除后重建。建议把 Glsubldg 和 Glslnav 从数据库中删除,然后用 Check 添加进来,再添加索引关系,这样可以解决。 8. 明细账查询出现其他科目内容...
2008-04-09 人力资源管理软件发布1.5版本,做了以下改进 员工资料支持拼音查询(感谢☆缘☆) 员工资料输入身份证后自动填写籍贯、出生日期和性别(感谢☆缘☆) 员工资料支持描述信息(如工作经历等),可自定义...
修改购物车商品数量.avi │ 08.删除购物车商品.avi │ 09.购物车作业.avi │ 10.创建订单服务工程.avi │ 11.创建订单服务-分析.avi │ 12.创建订单服务-Service.avi │ 13.创建订单服务-完成.avi │ 14.展示订单...
本系统在Windows XP环境中采用Visual C++为开发平台,使用Microsoft Access 2000创建数据库,用于对超市资料的增加,删除,修改,刷新记录。经过分析、设计、 编码、调试等一系列步骤。程序通过调试运行,初步实现了...
允许用户自己来管理用户会话中的事务,这在数据库维护时(如进行表数据修改、删除时)显得非常重要,只有用户自己确认操作无误后,再向系统提交或者回退事务。 2、提供了数据库对象浏览器,使用户更方便地了解...