简介:
Lucene是apache软件基金会4 jakarta项目组的一个子项目,是一个开放源代码的全文检索引擎工具包,即它不是一个完整的全文检索引擎,而是一个全文检索引擎的架构,提供了完整的查询引擎和索引引擎,部分文本分析引擎(英文与德文两种西方语言)。Lucene的目的是为软件开发人员提供一个简单易用的工具包,以方便的在目标系统中实现全文检索的功能,或者是以此为基础建立起完整的全文检索引擎。
作为一个开放源代码项目,Lucene从问世之后,引发了开放源代码社群的巨大反响,程序员们不仅使用它构建具体的全文检索应用,而且将之集成到各种系统软件中去,以及构建Web应用,甚至某些商业软件也采用了Lucene作为其内部全文检索子系统的核心。
Lucene是一个高性能、可伸缩的信息搜索(IR)库。它可以为你的应用程序添加索引和搜索能力。Lucene是用java实现的、成熟的开源项目,是 著名的Apache Jakarta大家庭的一员,并且基于Apache软件许可 [ASF, License]。同样,Lucene是目前非常流行的、免费的Java信息搜索(IR)库。
下面是用C#语言实现Lucene-文本检索的类,直接调用即可实现创建索引和文本检索
using System;
using System.Collections.Generic;
using System.Text;
using System.Collections;
using Lucene.Net;
using Lucene.Net.Store;
using Lucene.Net.Index;
using Lucene.Net.Analysis.Standard;
using Lucene.Net.Documents;
using Lucene.Net.Search;
namespace LuceneDemo
{
class Lucene
{
public bool CreateIndexFile(ArrayList resourceList, string filePath)
{
try
{
//1、定义索引文件路径
FSDirectory ramdir = FSDirectory.GetDirectory(filePath);
IndexWriter ramwriter = new IndexWriter(ramdir, new StandardAnalyzer(), true,
IndexWriter.MaxFieldLength.UNLIMITED);
Console.WriteLine("开始生成索引文件");
//2、生索引文件);
//其中LuceneResourceInfo 是要存储的对象
foreach (LuceneResourceInfo lri in resourceList)
{
Document document = new Document();
//***
//说明:这里的Name,Phone,Address 是要存储对象的字段在索引里的命名,检索时可以根据任何一个字段进行检索
//**
document.Add(new Field("Name", lri.name, Field.Store.YES, Field.Index.ANALYZED,
Field.TermVector.YES));
document.Add(new Field("Phone", lri.phoneNo, Field.Store.YES, Field.Index.ANALYZED,
Field.TermVector.YES));
document.Add(new Field("Address", lri.address, Field.Store.YES, Field.Index.ANALYZED,
Field.TermVector.YES));
ramwriter.AddDocument(document);
}
ramwriter.Optimize();
ramwriter.Close();
Console.WriteLine("索引文件已生成");
return true;
}
catch (Exception ex)
{
Console.WriteLine(ex);
return false;
}
}
//查询索引
public List<LuceneResourceInfo> Qury(string resourceName, string filePath)
{
List<LuceneResourceInfo> luceneResourceInfos = new List<LuceneResourceInfo>();
IndexSearcher searcher = new IndexSearcher(filePath);
//根据Name字段来查询
Query query = new TermQuery(new Term("Name", resourceName));//单个字节查询
Hits hits = searcher.Search(query);
for (int i = 0; i < hits.Length(); i++)
{
Document d = hits.Doc(i);
string name = d.Get("Name");
string phone = d.Get("Phone");
string address = d.Get("Address");
//存储的对象
LuceneResourceInfo info = new LuceneResourceInfo();
info.name = name;
info.phoneNo = phone;
info.address = address;
luceneResourceInfos.Add(info);
}
return luceneResourceInfos;
}
}
}
注:附件中有项目源码
第二个demo中包含模糊搜索和条件搜索两种,第一个demo中只有条件搜索
相关推荐
此资源配合《android+lucene实现全文检索并高亮关键字》使用http://download.csdn.net/detail/reality_jie/6335113
使用lucene技术,实现android的本地文档资源的全文检索功能,并实现关键字高亮
利用paoding进行中文分词,可进行自定义词典。利用lucene对文本内容进行索引和搜索并进行高亮处理。
mysql中一个表的大量数据
本案例通过.Net MVC4基础上,针对Lucene.Net实现全文检索的应用。通过查询数据表中数据,创建索引,通过统一输入框进行全文检索。可以进行对索引的增删改查功能。
基于struts2的全文检索系统,实现了文件上传和下载,并实现对上传的文件进行检索。
这是一本英文书,非常详细地介绍了利用Lucene实现全文检索的常用技术细节。非常值得仔细研究。
lucene实现文件检索Demo,
使用lucene编程实现全文检索数据库内容,程序使用lucene-core-2.4.0以及access数据库
快速有效地索引企业累积的大量的信息资源,是提供高质量检索服务的基础。Lucene 是一个用Java 写的全文索 引引擎工具包,访问索引时间快,支持多用户...Lucene 的索引文件格式,实现了一个基于Lucene 文档检索的应用实例。
lucene 全文检索 ,内含对word,excel,ppt,pdf封装接口,全文检索demo
2、Lucene实现全文检索的流程 a) 创建索引 b) 查询索引 3、配置开发环境 4、创建索引库 5、查询索引库 6、分析器的分析过程 a) 测试分析器的分词效果 b) 第三方中文分析器 7、索引库的维护 a) 添加文档 b) 删除文档 ...
使用compass+lucene实现简单的全文检索功能
Lucene实现全文搜索,支持英文、模糊和智能查询
Lucene.Net全文检索Demo 和相关帮助文档,功能已完全实现 绝对可以运行 欢迎下载!
目前业界流行的ElasticSearch和Solr搜索技术底层正是使用Lucene实现的。使用全文检索技术可以构建像百度、谷歌、京东搜索、淘宝搜索等系统和功能. 在本套课程中,我们将全面的讲解Lucene技术,从简单应用到细节使用...
基于Lucene的全文检索的Java实现.pdf