`
rentianchou
  • 浏览: 69671 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

lucene3小例子

阅读更多
公司项目要用到Lucene,首先看了一下最新的版本是3.0,废话不说代码如下

public class Test1 {

public static void main(String[] args) throws SQLException, IOException {
  String[] ids = {"1","2","3","4"};
  String[] names = {"liujun","aa","bb","cc"};
  String[] addresses = {"i am in beijing","nanjing","beijing","aaa"};
  String[] birthdays = {"19820203","19840802","19830804","19840806"};
 
  Analyzer analyzer = new StandardAnalyzer(Version.LUCENE_30);
 
  String indexDir = "d:/indexDir";
  File f = new File(indexDir);
  Directory dir = FSDirectory.open(f);
 
  IndexWriter writer = new IndexWriter(dir,analyzer,true,IndexWriter.MaxFieldLength.LIMITED);
 
  for(int i=0;i<ids.length;i++){
   Document d = new Document();
   d.add(new Field("id",ids[i],Field.Store.YES,Field.Index.ANALYZED));
   d.add(new Field("name",names[i],Field.Store.YES,Field.Index.ANALYZED));
   d.add(new Field("address",addresses[i],Field.Store.YES,Field.Index.ANALYZED));
   d.add(new Field("birthday",birthdays[i],Field.Store.YES,Field.Index.ANALYZED));
  
   writer.addDocument(d);
  }
  writer.optimize();
  writer.close();
  System.out.println("ok");
}

}



这个是把内容索引到Lucene的数据库中



下面开始根据关键字查找

package test;

import java.io.File;
import java.io.IOException;

import org.apache.lucene.document.Document;
import org.apache.lucene.index.Term;
import org.apache.lucene.search.IndexSearcher;
import org.apache.lucene.search.ScoreDoc;
import org.apache.lucene.search.TermQuery;
import org.apache.lucene.search.TopDocs;
import org.apache.lucene.store.Directory;
import org.apache.lucene.store.FSDirectory;

public class Test2 {

/**
  * @param args
  * @throws IOException
  */
public static void main(String[] args) throws IOException {
  // TODO Auto-generated method stub

  String indexDir = "d:/indexDir";
  File f = new File(indexDir);
  Directory dir = FSDirectory.open(f);
 
  IndexSearcher searcher = new IndexSearcher(dir);
  Term term = new Term("address","beijing");
  TermQuery query = new TermQuery(term);
  TopDocs  topDocs = searcher.search(query, 100);
  ScoreDoc[] hits = null;
  hits = topDocs.scoreDocs;
 
  for(int i = 0;i<hits.length;i++){
   Document doc = searcher.doc(hits[i].doc);
   System.out.print(hits[i].score+"  ");
   System.out.print(doc.get("id")+"  ");
   System.out.print(doc.get("name")+"  ");
   System.out.print(doc.get("address")+"  ");
   System.out.println(doc.get("birthday")+"  ");
  }
  searcher.close();
  System.out.println("end");
}

}



因为这样出来之后,不能对中文进行分词,故引用了第三方的包用的是IK Analyzer 3.2.0版本

下载地址

IKAnalyzer3.2.0稳定版发布包 http://ik-analyzer.googlecode.com/files/IKAnalyzer3.2.0Stable_bin.rar

下面的代码就不贴了



只要照里面的手册改一下就行了

源码里也有一个用到表的例子,索性不改了  直接传
分享到:
评论

相关推荐

    lucene入门小例子

    这个“lucene入门小例子”很可能是为了帮助初学者理解并掌握Lucene的基本用法而设计的一系列示例代码。 Lucene的核心概念包括索引、文档、字段和查询。首先,你需要理解索引的概念,它类似于传统数据库中的索引,但...

    lucene检索小例子

    **Lucene检索小例子** Lucene是一个开源的全文搜索引擎库,由Apache软件基金会开发并维护。这个"lucene检索小例子"程序展示了如何利用Lucene的强大功能来构建索引和执行搜索操作。Lucene的核心特性包括文本分析、...

    lucene与quartz例子

    lucene quartz 例子lucene quartz 例子lucene quartz 例子lucene quartz 例子lucene quartz 例子lucene quartz 例子lucene quartz 例子lucene quartz 例子lucene quartz 例子lucene quartz 例子

    lucene3 例子

    【标题】:“Lucene3 实例解析” 在深入探讨Lucene3这个主题之前,我们先来了解一下Lucene是什么。Lucene是一个开源的全文检索库,由Apache软件基金会开发,广泛应用于各种信息检索系统中,包括搜索引擎、内容管理...

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

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

    lucene开发部分例子

    这个压缩包文件“lucene开发部分例子”包含了关于Lucene开发的一些实例,涵盖了从基础到进阶的多个方面,对于学习和理解Lucene的使用非常有帮助。 首先,"Web搜索引擎开发实例"这部分内容将教你如何使用Lucene来...

    lucene3.6 搜索例子

    3. 结果排序:Lucene提供TF-IDF(词频-逆文档频率)算法进行默认的排名。开发者也可以自定义评分函数,根据实际需求调整结果的排序。 4. 结果集获取:使用TopDocs类来获取搜索结果,它包含了匹配文档的数量以及按...

    LUCENE的搜索引擎例子

    3. **查询处理**:当用户在前端输入查询时,服务器接收到请求后,使用QueryParser解析查询字符串,生成Query对象。Query对象代表了用户的查询意图,可以是简单的关键词匹配,也可以是复杂的布尔组合。 4. **搜索...

    lucene_demo例子

    3. **字段与类型**:理解Document中的Field,如TextField、KeywordField、Store和Indexed等属性的含义,以及它们在索引和查询时的影响。 4. **倒排索引**:了解Lucene的核心机制——倒排索引,它是如何快速定位到...

    一个基于LUCENE搜索引擎项目例子

    在这个项目例子中,我们将深入探讨如何利用Lucene进行索引构建、查询处理以及结果排序,从而创建一个功能完善的搜索引擎。 首先,我们需要了解Lucene的基本概念。Lucene的核心功能包括文本分析、索引构建和搜索。...

    lucene3.0 例子

    lucene3.0 例子lucene3.0 例子 lucene3.0 例子 ,很好的学习,只有原代原,jar 包自己加上去就OK了

    Lucene4.7-Web 例子

    以上就是关于"Lucene4.7-Web例子"的详细解析,通过这个示例,开发者可以了解到如何在实际的Web环境中结合SpringMVC和MyBatis3使用Lucene4.7构建高效搜索引擎。实践中,可以参考提供的"gusao.sql"数据库脚本,"请读我...

    lucene全文搜索ajax例子

    总的来说,这个例子是一个综合性的Web应用,它展示了如何利用Lucene进行全文搜索,结合Ajax技术实现动态更新的搜索结果展示,同时还包括了高亮显示和多次搜索的功能。这对于学习和理解Lucene在实际应用中的工作原理...

    lucene文档例子

    lucene文档例子

    Lucene 2.4 入门例子

    **Lucene 2.4 入门例子** Lucene 是一个高性能、全文本搜索库,由Apache软件基金会开发。它提供了强大的搜索功能,被广泛应用于各种应用中的信息检索。在这个入门例子中,我们将探讨Lucene 2.4版本的一些关键特性和...

    lucene 搜索引擎小例子

    3. **建立倒排索引**:对于每个词元,Lucene 创建一个倒排索引条目,记录这个词在哪些文档中出现,以及出现的位置信息。 4. **查询处理**:用户输入查询后,Lucene 使用 `QueryParser` 解析查询字符串,生成对应的 ...

    SQLServer+Lucene.Net例子

    3. **高性能搜索**:Lucene.NET的索引机制能快速定位到目标数据,对于大规模数据集,其搜索速度远超SQL Server内置的全文搜索。 4. **高级查询**:Lucene.NET提供了丰富的查询API,可以实现更复杂的搜索逻辑,如...

Global site tag (gtag.js) - Google Analytics