`
晨星★~雨泪
  • 浏览: 447183 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

青菜猫lucene2.2.0全文检索

    博客分类:
  • Java
阅读更多

我用的是lucene2.2.0,

最近要做一个站内的全文检索功能,下面把实现的代码贴出来,实现了索引的创建、检索和删除功能,并可以从检索结果去查询数据库~ .我主要是我系统的700W数据进行检索.下面主要是供应信息做为例子,(如有问题,多多评论,虚心接受).

 // 创建索引

IndexWriter writer;
   String indexDir = "d:""index/sellindex";
   boolean indexExist = indexExist(indexDir);
   if (indexExist) {
    writer = new IndexWriter(indexDir, new StandardAnalyzer(),
      false);
   } else {

    writer = new IndexWriter(indexDir, new StandardAnalyzer(), true);
   }
re为数据记录集,这里就不介绍了.
while (re.next()) {
//Field.Store.YES表示是不是被保存,
//Field.Index.no表示是不是被索引.
doc.add(new Field("vcsid", re.getString("vcsid"),
      Field.Store.YES, Field.Index.no));
//vcareacode是我的地区编号,因为我搜索要作为条件搜索.
 doc.add(new Field("vcareacode", re.getString("vcareacode"),
       Field.Store.YES, Field.Index.TOKENIZED));
//这里isort后面排序用的
doc.add(new Field("isort", re.getString("isort"),
       Field.Store.YES, Field.Index.TOKENIZED));
//clcontent是我的内容,因为我搜索要作为条件搜索.
doc.add(new Field("clcontent", re.getString("clcontent"),
       Field.Store.YES, Field.Index.TOKENIZED));
writer.addDocument(doc);
}
如果记录较多时,就循环添加
最后
writer.close();
判断索引存在方法
public static boolean indexExist(String indexDir) {
  return IndexReader.indexExists(indexDir);
 }
这样就在索引就建好了.

 // 索引搜索的实现(我这里已搜索内容和地区)

 IndexSearcher indexSearcher;
ndexSearcher = new IndexSearcher("d:""index/sellindex");
   Document doc = null;
   org.apache.lucene.search.BooleanQuery  bquery=new org.apache.lucene.search.BooleanQuery();
//我这里clcontent作为关键字来搜索
   QueryParser qa=new QueryParser("clcontent",new StandardAnalyzer());
   Query query=qa.parse(keyword);
//这里指定条件都满足搜索
   bquery.add(query,org.apache.lucene.search.BooleanClause.Occur.MUST);
//   vcareacode作为条件来查询,如果为NULL和 AA时表示查找所有的
   if(request.getParameter("vcareacode")!=null){
    if(!request.getParameter("vcareacode").toString().equals("aa")){      
       qa=new QueryParser("vcareacode",new StandardAnalyzer());
      query=qa.parse(request.getParameter("vcareacode")+"*");
      bquery.add(query,org.apache.lucene.search.BooleanClause.Occur.MUST);
      vcareacode=request.getParameter("vcareacode");
     }
  }"
//这里加的是高亮结果显示
 Highlighter highlighter = new Highlighter(new SimpleHTMLFormatter("<font color=red><B>","</B></font>"),new QueryScorer(bquery));
    highlighter.setTextFragmenter(new SimpleFragmenter(80));
 org.apache.lucene.document.Document dc=null;
 Hits hits = indexSearcher.search(bquery,new Sort(new SortField("isort",true)));
  org.apache.lucene.analysis.standard.StandardAnalyzer analyzer = new org.apache.lucene.analysis.standard.StandardAnalyzer();
//这里hits.length()可以得到有多少记录.,I表示第几条记录
 dc = hits .doc(i);
//高亮显示类容
  org.apache.lucene.analysis.TokenStream  tokenStream = analyzer.tokenStream("clcontent", new java.io.StringReader(dc.get("clcontent")));
System.out.pritf(highlighter.getBestFragment(tokenStream,li.doc(i).get("clcontent")))  ;
dc.get("vcareacode")显示类别
这样就可以从建索引,到搜索.(有问题,发表下评论,我会回的)这只是简单的,我也在苦研中,要睡了,还要上班,有时间会写下更新索引,增加,删除,修改,还有一些优化方法..

 

出自http://www.blogjava.net/sundc/archive/2008/07/17/155129.html

分享到:
评论
1 楼 晨星★~雨泪 2008-12-19  
构建各种Lucene Query
http://www.ideagrace.com/html/doc/2007/02/07/08629.html

相关推荐

    lucene-2.2.0zip

    Lucene,一个由Apache软件基金会开发的全文检索库,是Java编程语言中的一个核心工具,被广泛应用于各种搜索引擎的开发中。它提供了强大的文本分析、索引构建和搜索功能,使得开发者能够快速构建出高效、灵活的搜索...

    lucene2.2.0

    《Apache Lucene 2.2.0:全文检索框架的基石》 Apache Lucene 是一个高性能、全文本搜索引擎库,而Lucene 2.2.0则是这一系列版本中的一个重要里程碑。作为一个开源项目,Lucene 提供了强大的文本分析、索引构建以及...

    Lucene4 全文检索

    **Lucene4 全文检索详解** Lucene4 是 Apache 软件基金会的一个开源全文检索库,它为开发者提供了强大的文本搜索功能。作为一个高级的搜索引擎工具包,Lucene4 提供了完整的索引和搜索机制,使得在文件和数据库中...

    基于lucene的全文检索系统

    **基于Lucene的全文检索系统** Lucene是一个高性能、全文本搜索库,由Apache软件基金会开发,被广泛应用于各种搜索引擎的构建。它提供了一个简单但功能强大的API,可以帮助开发者快速地在大量文档中实现高效的全文...

    基于Lucene的全文检索引擎研究与应用.pdf

    ### 基于Lucene的全文检索引擎研究与应用 #### 概述 随着信息技术的飞速发展,尤其是互联网的普及,企业和个人积累了大量的电子文档。如何高效地管理和检索这些文档成为了亟待解决的问题。全文检索技术作为一种...

    基于Lucene的全文检索系统研究与开发

    ### 基于Lucene的全文检索系统研究与开发 #### 摘要与背景介绍 本文探讨了一种基于Jakarta Lucene构建的全文检索系统模型。相较于Google的站内检索及传统数据库检索方法,该模型展现出显著的优势,特别是在关键字...

    Lucene全文检索引擎

    **Lucene全文检索引擎** Lucene是Apache软件基金会的一个开源项目,它是一个高性能、全文本搜索引擎库,可以被集成到各种应用中实现全文检索功能。Lucene提供了完整的搜索功能实现,包括索引创建、文档存储、查询...

    基于Lucene的全文检索系统

    **基于Lucene的全文检索系统** Lucene是一个高性能、全文本搜索库,由Apache软件基金会开发,被广泛应用于各种搜索引擎的构建。它提供了一个简单的API,使得开发者可以轻松地在Java应用程序中集成全文检索功能。在...

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

    在Android平台上实现全文检索并高亮关键字是一项技术挑战,但通过集成Apache Lucene库,可以有效地解决这个问题。Apache Lucene是一个高性能、可扩展的信息检索库,它为开发人员提供了强大的文本搜索功能。以下是对...

    lucene例子(一个完整的,lucene例子)(lucenetest.rar,lucene,全文检索,lucene例子)

    lucenetest.rar,lucene,全文检索,lucene例子 lucenetest.rar,lucene,全文检索,lucene例子lucenetest.rar,lucene,全文检索,lucene例子

    使用zend Framework的lucene进行全文检索

    在本文中,我们将探讨如何使用Zend Framework的Lucene模块进行全文检索,特别是针对中文分词的处理。全文检索是提高网站或应用搜索功能的关键技术,它允许用户输入任意词汇,系统能够快速找到与之相关的内容。Zend ...

    中文分词及其在基于Lucene的全文检索中的应用

    《中文分词及其在基于Lucene的全文检索中的应用》这篇论文主要探讨了中文分词在全文检索系统,特别是基于Lucene平台的应用。全文检索技术是现代信息检索领域的重要组成部分,而Lucene作为一款开源的全文检索引擎框架...

    Lucene.Net 实现全文检索

    在本案例中,我们将在 .Net MVC4 框架上使用 Lucene.Net 来构建一个全文检索系统。 首先,我们需要理解全文检索的基本概念。全文检索是指在文档集合中,根据用户输入的查询词,查找包含这些词的文档。与传统的...

    Lucene.Net全文检索Demo

    **Lucene.Net全文检索Demo详解** Lucene.Net是一款开源的全文搜索引擎库,它是Apache Lucene项目在.NET平台上的实现。Lucene.Net提供了高效、可扩展的搜索功能,被广泛应用于各种需要快速、精确检索信息的系统中。...

    lucene3.5全文检索案例lucene+demo

    《深入剖析Lucene 3.5全文检索技术与实战演示》 Lucene是一个高性能、全文检索库,由Apache软件基金会开发并维护。在3.5版本中,Lucene提供了强大的文本处理、索引构建和搜索功能,使得开发者可以轻松地在自己的...

    lucene 全文检索

    **Lucene 全文检索详解** Lucene 是一个开源的全文检索库,由Apache软件基金会维护,它提供了高效的全文检索和分析功能。Lucene 广泛应用于网站搜索、文档检索、信息提取等领域,是Java开发人员实现全文搜索引擎的...

Global site tag (gtag.js) - Google Analytics