lucene 2.4高亮显示成功了!但是为什么只能在一个域搜索?其他域的关键字没高亮?我在DOCNAME域搜索高亮显示但为什么DOCAUTHOR没高亮呢?各位有什么看法啊?[img][/img]
package com.wcb.lucene.impl;
/**
* wcb
*/
import java.io.IOException;
import java.io.StringReader;
import java.util.ArrayList;
import java.io.IOException;
import java.util.ArrayList;
import org.apache.lucene.analysis.TokenStream;
import org.apache.lucene.analysis.standard.StandardAnalyzer;
import org.apache.lucene.document.Document;
import org.apache.lucene.document.Field;
import org.apache.lucene.document.Field.Index;
import org.apache.lucene.document.Field.Store;
import org.apache.lucene.index.CorruptIndexException;
import org.apache.lucene.queryParser.QueryParser;
import org.apache.lucene.search.BooleanQuery;
import org.apache.lucene.search.Hits;
import org.apache.lucene.search.IndexSearcher;
import org.apache.lucene.search.Query;
import org.apache.lucene.search.BooleanClause.Occur;
import org.apache.lucene.search.highlight.Highlighter;
import org.apache.lucene.search.highlight.QueryScorer;
import org.apache.lucene.search.highlight.SimpleFragmenter;
import org.apache.lucene.search.highlight.SimpleHTMLFormatter;
import com.wcb.lucene.model.DocBean;
public class IndexSearch_wcb {
// public static void main(String[] a) throws Exception {
// System.out.println((new IndexSearch_wcb().Search("��")).size());
// }
public ArrayList Search(String keyword) throws Exception {
ArrayList result = new ArrayList();
try {
IndexSearcher searcher = new IndexSearcher(CreateIndex.IndexDir);
BooleanQuery mainQuery = new BooleanQuery();
StandardAnalyzer standeranalyzer = new StandardAnalyzer();
QueryParser authorParser = new QueryParser("DOCAUTHOR",
standeranalyzer);
QueryParser docnameParser = new QueryParser("DOCNAME",
standeranalyzer);
Query authorQuery = authorParser.parse(keyword);
Query docnameQuery = docnameParser.parse(keyword);
mainQuery.add(docnameQuery, Occur.SHOULD);
mainQuery.add(authorQuery, Occur.SHOULD);
Hits hits = searcher.search(mainQuery);
////////////////////////////////////////////准备
Highlighter highlighter = null;
SimpleHTMLFormatter simpleHTMLFormatter = new SimpleHTMLFormatter("<b><font color='green'>", "</font></b>");
highlighter = new Highlighter(simpleHTMLFormatter,new QueryScorer(mainQuery));
highlighter.setTextFragmenter(new SimpleFragmenter(100));
if(hits.length()>0){
for (int i = 0; i < hits.length(); i++) {
Document doc = hits.doc(i);
/////////////////高亮的分析
// TokenStream tokenStream = luceneAnalyzer.tokenStream("contents", new StringReader(hits.doc.get("contents")));
TokenStream tokenStream =standeranalyzer.tokenStream("token", new StringReader(doc.get("DOCNAME")));
//TokenStream tokenStream2 =standeranalyzer.tokenStream("token2", new StringReader(doc.get("DOCAUTHOR")));
/////////////////////////
System.out.print(doc.getField("DOCAUTHOR").stringValue()+"\t");
System.out.print(doc.getField("DOCNAME").stringValue()+"\t");
System.out.print(doc.getField("DOCUPTIME").stringValue()+"\t");
System.out.println(doc.getField("DOCID").stringValue());
DocBean docbean = new DocBean();
docbean.setDocId(Integer.parseInt(doc.getField("DOCID").stringValue()));
//docbean.setDocAuthor(highlighter.getBestFragment(tokenStream,doc.get("DOCAUTHOR")));
docbean.setDocAuthor(doc.getField("DOCAUTHOR").stringValue());
docbean.setDocName(highlighter.getBestFragment(tokenStream,doc.get("DOCNAME")));
docbean.setDocUp_time(doc.getField("DOCUPTIME").stringValue());
result.add(docbean);
}
}
} catch (Exception e) {
e.printStackTrace();
}
return result;
}
}
关键字:小吴
小吴:
小吴的sdf :16 :2009-11-13
小吴:
小吴hgjk :25 :2009-11-13
小吴:
小吴gf文章 :19 :2009-11-13
xiaowu小吴:
小吴的hjk :24 :2009-11-13
xiaowu小吴:
小吴jk文章 :22 :2009-11-13
小吴: :1 :2009-05-11
小吴:小hfg的文章 :20 :2009-11-13
xiaowu:
小吴sdf :15 :2009-11-13
分享到:
相关推荐
Lucene2.4入门总结lucene2.4 人门 field 多条件搜索
lucene高亮显示
lucene 高亮显示. java 已测试
基于SpringBoot编写的一个Lucene测试Demo把匹配到的结果高亮摘要显示在前端jsp上
lucene 2.4 jar lucene2.4版本的JAR包
lucene3.5高亮
java拼车网雏形(Ext2.0+SSH+oracle10g+lucene2.4)
ictclas4j for lucene 2.4 任何人不得将此用于商业用途,仅限个人学习研究之用.该开源项目遵循Apache License 2.0
能够直接运行的Lucene2.4样例以及全面注释; + Lucene中文文档,能够帮助你最快掌握Lucene2.4
NULL 博文链接:https://chenhua-1984.iteye.com/blog/380779
庖丁解牛 源码 for Lucene 2.4
Luene2.4版本在以前的基础上进行了不少的改动,性能上也提升了不少,这里边学习边写了一个简单的例子,给初学者行个方便!
这个是自己写的lucene分页高亮程序虽然有些不足但是毕竟是自己研究半天总结出来的麻烦各位帮忙给点分哈哈祝大家新年快乐!
在Eclipse环境中运用java,Lucene建索引及查询关键字
支持net4.0环境下运行,Lucene.net版本为3.0,PanGu版本为2.4
使用lucene技术,实现android的本地文档资源的全文检索功能,并实现关键字高亮
这是lucene的使用案例,实现了对word文档中的关键字检索,并将检索出的内容高亮打印出来
该项目中包括创建索引,增删改查索引,以及关键字高亮显示实例~~对于初学者很有帮助,该项目是基于Lucene3.0
NULL 博文链接:https://sunlongan666.iteye.com/blog/580380