`
chuxu000
  • 浏览: 4407 次
  • 性别: Icon_minigender_1
  • 来自: 北京
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

lucene 2.4高亮显示成功了!但是为什么只能在一个域搜索?其他域的关键字没高亮?

阅读更多
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+nutch学习笔记三:lucene 在多个文本文档里找出包含一些关键字的文档

    Lucene是一个高性能、全文本搜索引擎库,它为开发者提供了在Java应用程序中实现全文搜索功能的基本工具。Nutch则是一个开源的网络爬虫项目,用于抓取互联网上的网页并建立索引。在这篇学习笔记中,我们将探讨如何...

    lucene 高亮显示. java

    Lucene是一款高性能、全功能的文本搜索引擎库,其高亮显示功能主要用于在搜索结果中突出显示与查询条件相匹配的关键词,这不仅提升了用户体验,还能帮助用户快速定位关键信息。 ### 中文分词对性能的影响 在使用...

    SpringBoot+Lucene搜索结果高亮显示Demo

    **SpringBoot+Lucene搜索结果高亮显示** 在现代Web应用程序中,强大的全文搜索引擎功能是不可或缺的,而Apache Lucene正是这样一个高效的、可扩展的开源全文检索库。在这个SpringBoot+Lucene的Demo中,我们将深入...

    lucene高亮显示

    Lucene的高亮显示是指在搜索结果中,对匹配查询关键词的部分进行突出显示,通常用不同颜色或者加粗等方式实现。这不仅能够帮助用户迅速识别搜索结果的相关性,还能提高搜索结果的可读性和吸引力。 #### 二、高亮...

    android+lucene实现全文检索并高亮关键字索引库

    下面我们将深入探讨如何在Android环境中利用Lucene来创建一个高效、功能丰富的全文检索系统,并了解如何高亮显示搜索结果中的关键字。 首先,我们要理解全文检索的基本原理。全文检索是指通过建立倒排索引来快速...

    Lucene+HighLighter高亮显示实例

    Apache Lucene是一个高性能、可扩展的开源全文检索库,它提供了完整的索引和搜索功能,使得开发者能够轻松地在应用中集成全文搜索。而Highlighter模块则是Lucene提供的一种用于高亮搜索关键词的工具,它能够自动识别...

    Lunene分页关键字高亮显示

    标题 "Lunene分页关键字高亮显示" 暗示了我们正在讨论一个与搜索引擎或数据检索相关的项目,其中涉及到了Lunene(可能是Lucene的误拼),一种广泛使用的全文搜索引擎库,以及如何在搜索结果中实现分页和关键字高亮。...

    Lucene5学习之Highlighte关键字高亮

    在Lucene5中,Highlighter组件为搜索结果提供了一个强大的关键字高亮机制,使得用户可以快速定位到与查询相关的重要部分。 首先,我们要理解Highlighter的基本工作原理。当用户输入查询后,搜索引擎返回匹配的文档...

    Lucene 2.4 入门例子

    在这个入门例子中,我们将探讨Lucene 2.4版本的一些关键特性和如何构建一个基本的搜索系统。 ### 一、Lucene 2.4 的改进与性能提升 在Lucene 2.4版本中,主要的改动和性能提升包括: 1. **优化索引构建速度**:...

    Lucene2.4入门总结

    Lucene 是一个高性能、全文本搜索库,由 Apache 软件基金会开发。它提供了高级文本检索功能,广泛用于构建搜索引擎和其他需要高效全文检索能力的应用。本文将重点介绍 Lucene 2.4 版本的基本概念和使用方法,帮助...

    lucene 2.4 jar

    lucene 2.4 jar lucene2.4版本的JAR包

    java拼车网雏形(Ext2.0+SSH+oracle10g+lucene2.4)

    **Lucene 2.4** 是Apache软件基金会的一个开源全文检索库,提供索引和搜索功能。在这个拼车网雏形中,Lucene可能用于建立对拼车信息的全文索引,帮助用户快速、精准地查找符合要求的拼车信息。 **pinche.dmp** 文件...

    Lucene2.4完美样例+中文文档

    - **文档**:在 Lucene 中,每个要搜索的数据被视为一个文档,包含一个或多个字段,如标题、内容等。 - **字段**:文档中的信息被组织成字段,每个字段有特定的属性,如是否可搜索、是否存储原始值等。 - **分词*...

    自己写的lucene分页高亮显示代码

    在搜索引擎技术中,Apache Lucene 是一个非常重要的开源全文检索库。它提供了高效、可扩展的搜索功能,被广泛应用于各种项目中。本压缩包中的代码着重展示了如何使用 Lucene 进行分页搜索和结果高亮显示。下面将详细...

    lucene3.5高亮jar

    lucene3.5高亮

    Lucene3.0增删改查和关键字高亮实例

    Lucene 是一个高性能、全文本搜索库,它为开发者提供了在各种应用中实现全文检索的强大工具。在这个“Lucene3.0增删改查和关键字高亮实例”项目中,我们将深入理解如何利用Lucene 3.0版本进行索引构建、文档的增删改...

    lucene 多字段查询+文字高亮显示

    在IT领域,Lucene是一个非常重要的全文搜索引擎库,它由Apache软件基金会开发并维护。Lucene提供了高效的文本分析、索引和搜索功能,是许多大型网站和应用的基础。本话题聚焦于“Lucene多字段查询”和“文字高亮显示...

    android+lucene实现全文检索并高亮关键字

    Apache Lucene是一个高性能、可扩展的信息检索库,它为开发人员提供了强大的文本搜索功能。以下是对这个主题的详细阐述: 1. **Lucene简介**:Lucene是一个开源Java库,专门用于构建全文搜索引擎。它提供了索引和...

    Lucene与数据库结合示例(加双关键字高亮)

    “Lucene与数据库结合示例(加双关键字高亮)”这个标题表明,我们将讨论如何将开源全文搜索引擎Lucene与关系型数据库MySQL整合在一起,并且在搜索结果中实现关键词高亮显示,以提升用户体验。这通常涉及到数据的...

Global site tag (gtag.js) - Google Analytics