参考mainTest.java里的main方法
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("网易新闻");
}
/**
* 创建搜索方法
* @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",keyWord));
//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();
}
}
}
分享到:
相关推荐
深入搜索引擎--海量信息的压缩、索引和查询
深入搜索引擎--海量信息的压缩、索引和查询 著名教材 共4部分,全部下载后解压part1即可。绝对没有错误! 第一部分:深入搜索引擎--海量信息的压缩、索引和查询part1 第二部分:深入搜索引擎--海量信息的压缩、索引和...
《深入搜索引擎:海量信息的压缩、索引和查询》是斯坦福大学信息检索和挖掘课程的首选教材之一,并已成为全球主要大学信息检索的主要教材。《深入搜索引擎:海量信息的压缩、索引和查询》理论和实践并重,深入浅出地给...
04-VIP-Mysql索引优化实战一.pdf
索引的存放内容 ------------------ 索引列的值(有序) 物理行地址 索引的分类 ------------- ### 聚集索引与非聚集索引 聚集索引中键值的逻辑顺序决定了表中相应行的物理顺序。聚集索引确定表中数据的物理顺序...
02-VIP-Explain详解与索引最佳实践.pdf
深入搜索引擎--海量信息的压缩、索引和查询中文版(5/6).zip.005深入搜索引擎--海量信息的压缩、索引和查询中文版(5/6).zip.005
2013-12月最新号码归属地,里面分了两张表,建了索引,查询非常快。
六部分深入搜索引擎--海量信息的压缩、索引和查询.zip深入搜索引擎--海量信息的压缩、索引和查询.zip深入搜索引擎--海量信息的压缩、索引和查询.zip
05-VIP-Mysql索引优化实战二.pdf
SQLServer索引基础知识----聚集索引,非聚集索引[归纳].pdf
《深入搜索引擎:海量信息的压缩、索引和查询》是斯坦福大学信息检索和挖掘课程的首选教材之一,并已成为全球主要大学信息检索的主要教材。《深入搜索引擎:海量信息的压缩、索引和查询》理论和实践并重,深入浅出地给...
微信小程序----机场索引列表(MUI索引列表):采用mui的效果实现。
深入搜索引擎--海量信息的压缩、索引和查询.pdf(01/15) 深入搜索引擎--海量信息的压缩、索引和查询.pdf(01/15)
深入搜索引擎--海量信息的压缩、索引和查询中文版(2/6).zip.002深入搜索引擎--海量信息的压缩、索引和查询中文版(2/6).zip.002深入搜索引擎--海量信息的压缩、索引和查询中文版(2/6).zip.002
MYSQL专题-查询优化-使用索引-安全隐患-事务与锁.docx