Field fieldA = new Field("contents", fileTextA, Field.Store.YES,Field.Index.TOKENIZED); docA.add(fieldA); Document docB = new Document(); String fileTextB = " 数据挖掘(Data Mining),又称为数据库中的知识发现(Knowledge Discovery in Database, KDD),就是从大量数据中获取有效的、新颖的、潜在有用的、最终可理解的模式的非平凡过程,简单的说,数据挖掘就是从大量数据中提取或“挖掘”知识。 "; Field fieldB = new Field("contents", fileTextB, Field.Store.YES,Field.Index.TOKENIZED); docB.add(fieldB); writer.addDocument(docA); writer.addDocument(docB); writer.optimize(); writer.close(); } public void search(String fieldName,String keyword) throws CorruptIndexException, IOException, ParseException{ searcher = new IndexSearcher(indexPath); 数据挖掘实验室 QueryParser queryParse = new QueryParser(fieldName, analyzer); Query query = queryParse.parse(keyword); Hits hits = searcher.search(query); for(int i=0;i<hits.length();i++){ Document doc = hits.doc(i); String text = doc.get(fieldName); //System.out.println("||||||||||||"+text); int htmlLength = prefixHTML.length()+suffixHTML.length(); System.out.println("高亮HTML的总长度为"+htmlLength); SimpleHTMLFormatter simpleHTMLFormatter = new SimpleHTMLFormatter(prefixHTML, suffixHTML); Highlighter highlighter = new Highlighter(simpleHTMLFormatter,new QueryScorer(query)); String highLightText = highlighter.getBestFragment(analyzer,"contents",text); 数据挖掘论坛 System.out.println("★高亮显示第 "+(i+1) +" 条检索结果如下所示:"); System.out.println(highLightText); System.out.println("显示第 "+(i+1) +" 条检索结果摘要的长度为(含高亮HTML代码):"+highLightText.length()); } searcher.close(); } public static void main(String[] args) { ExtractDigest ed = new ExtractDigest(); try { ed.createIndex(); ed.search("contents", "根据 挖掘"); } catch (CorruptIndexException e) {
|