虽然lucene3.0都出来了,但是相比较lucene2.4.1的文档更全面一些,所有现在还是用lucene2.4.1
创建lucene的类
/**
*类说明
*@author kaowww153
*@version 1.0 创建时间: Apr 27, 2010 11:17:49 AM
**/
@Service
public class LuceneTestService {
@Autowired
private UserDao userDao;
/**
* 方法描述:测试数据
* @return
*/
public List<User> getUsers(){
List<User> users = userDao.findAll();
return users;
}
/**
* 方法描述:
*/
public void getLuceneIndex(){
List<User> users = getUsers();
IndexWriter indexWriter;
try {
//构造函数参数:索引目录,分词类型,是否创建目录,limited 字段默认最大长度10000 unlimited 没有长度限制
indexWriter = new IndexWriter("d:/index/ii",new StandardAnalyzer(),true,MaxFieldLength.LIMITED);
//遍历user放到document里面
Document document = null;
for(User user : users){
document =new Document();
//字段名字,字段值,字段是否保存到index,是否对字段进行分词
document.add(new Field("uid", user.getUid().toString(), Field.Store.YES, Field.Index.ANALYZED));
document.add(new Field("username", user.getUsername(), Field.Store.YES, Field.Index.ANALYZED));
indexWriter.addDocument(document);
}
indexWriter.optimize();
indexWriter.close();
} catch (CorruptIndexException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (LockObtainFailedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
/**
* 方法描述:得到搜索lucene的值
* @param queryName
* @return
*/
public ScoreDoc[] getResultByLucene(String queryName) {
getLuceneIndex();
IndexSearcher indexSearcher;
try {
File file = new File("d:/index/ii");
FSDirectory fsdir = FSDirectory.getDirectory(file);
indexSearcher = new IndexSearcher(fsdir);
//字段是否必须出现
Occur[] flags = {BooleanClause.Occur.SHOULD};
//可以选择多个搜索的字段
Query query = MultiFieldQueryParser.parse(queryName,new String[]{"username"}, flags, new StandardAnalyzer());
// QueryParser queryParser = new QueryParser("username",new PaodingAnalyzer());
// Query query = queryParser.parse(queryName);
TopDocCollector collector = new TopDocCollector(10);
indexSearcher.search(query,collector);
//符合关键字的document
ScoreDoc[] hits = collector.topDocs().scoreDocs;
return hits;
} catch (CorruptIndexException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return null;
}
}
采用junit测试
@ContextConfiguration(locations = {"/applicationContext*.xml"})
public class UserServiceTest extends AbstractTransactionalJUnit4SpringContextTests {
@Autowired
private LuceneTestService luceneService;
@Test
public void test() {
ScoreDoc[] hits = luceneService.getResultByLucene("qeqw 111");
System.out.println(hits.length);
}
}
房改房
分享到:
相关推荐
Lucene 2.4.1 API手册提供了关于如何使用此版本的Lucene构建全文搜索引擎的详细指南。尽管较新版本的功能更加丰富,但理解这个版本的基础API对于学习全文检索技术的基本原理非常有益。通过熟练掌握这些API,开发者...
下载的文件名为“lucene-2.4.1-src”。 导入源码到Eclipse: 1. 打开Eclipse,点击菜单栏的“File” -> “Import”。 2. 在弹出的对话框中,选择“Existing Projects into Workspace”,然后点击“Next”。 3. 选择...
总结来说,Lucene 2.4.1是搜索引擎开发的重要工具,其源码的分析与学习对于提升对全文检索技术的理解至关重要。无论是熟悉核心包的类与接口,还是实践demos包中的示例,都将有助于开发者更好地利用Lucene构建高效、...
总之,"luke for lucene 2.4.1"是Lucene开发和维护者的得力助手,通过其丰富的功能和直观的界面,我们可以更好地理解和优化基于Lucene的搜索引擎。无论你是新手还是经验丰富的开发者,掌握Luke都将极大地提升你在...
《Lucene2.4.1 叶明》这本帮助文档可能是针对 Lucene 2.4.1 版本的一份详尽指南,可能包含了以下内容: 1. **安装与配置**:如何下载、安装和配置 Lucene 2.4.1,以及与现有项目的集成方法。 2. **基本用法**:...
1. 创建索引:开发者首先需要实例化一个IndexWriter对象,配置好相应的目录(如lucene-2.4.1目录下的索引文件),然后添加Document对象,每个Document对应一个实际的文档。 2. 添加文档:Document对象包含多个Field...
《Lucene 2.4.1搜索框架:深入学习与应用》 Lucene是一个高性能、全文本搜索引擎库,由Apache软件基金会开发并维护。在2.4.1这个版本中,它提供了强大的文本检索功能,被广泛应用于各种信息检索系统,如网站搜索、...
《深入理解Apache Lucene 2.4.1:搜索引擎核心技术剖析》 Apache Lucene是一个开源全文检索库,由Java编写,提供了高性能、可扩展的信息检索服务。标题中的"lucene-2.4.1.tar.gz"表明我们正在讨论的是Lucene的2.4.1...
总的来说,Apache Lucene 2.4.1版本是一个强大且灵活的搜索工具,无论你是初学者还是经验丰富的开发者,都能从中获益。通过研究源码和使用二进制包,你可以深入理解搜索引擎的运作机制,并构建出高效的搜索解决方案...
通过以上介绍,我们了解到MMAnalyzer作为JeasyAnalysis的一部分,是进行中文分词的重要工具,而`lucene-core-2.4.1.jar`则是其背后的基石,提供了必要的搜索和分析功能。正确地理解并使用这两个库,可以帮助开发者在...
"lucene-core-2.4.1.jar"是Lucene的核心库,包含了Lucene的基本功能,如索引构建、查询解析、搜索等功能。虽然2.4.1版本相对较老,但在当时,它已经相当成熟,能够支持各种复杂的文本处理任务。这个库是MMAnalyzer...
CHM文件是一种Windows帮助文档格式,包含Lucene 2.4.1版本的详细技术文档,涵盖了各个类和方法的说明,是学习和参考Lucene API的重要资源。 4. **lucene-core-3.0.3.jar** 这是Lucene 3.0.3的核心库文件,包含了...
Lucene提供了一个强大的API,使得开发者能够对文本进行索引和搜索,支持布尔逻辑、短语搜索、近似搜索、通配符搜索等多种高级查询功能。 二、lucene-core-2.9.2.jar详解 1. 模型与数据结构:Lucene的核心库主要...
4. **示例和文档**:除了库文件外,这个压缩包可能还包含示例代码和解说文档,帮助开发者更好地理解和使用Lucene。示例通常包括如何创建索引、执行查询、使用特定的Analyzer以及Highlighter等。 在使用Lucene-2.4.0...
到 2009 年 7 月 30 日止,用于 Java™ 编程语言的最新版 Lucene 为 V2.4.1。 Lucene 功能众多: 拥有强大、准确、有效的搜索算法。 计算每个文档匹配给定查询的分数,并根据分数返回最相关的文档。 支持许多强大的...
- **索引结构**:不同于传统的 B 树结构,Lucene 在更新索引时会创建新的索引文件,并在合适的时候合并这些文件,减少了频繁的 I/O 操作,提高了索引效率。 - **可扩展性**:Lucene 提供了丰富的 API 接口,可以方便...
Lucene 是一个高性能、全文本搜索库,它允许开发者将高级搜索功能集成到自己的应用中。在部署 Lucene 时,通常会将其与一个Web服务器如Tomcat结合使用,以实现网络化的搜索服务。以下是一份详细的Lucene部署步骤,...
标题中的"lucene-core-2.9.4.jar.zip"是一个包含Lucene核心库2.9.4版本的压缩文件,它在Java开发环境中扮演着关键角色,尤其是对于那些需要进行文本分析和索引的项目。描述中提到的问题,即初学者在使用MMAnalyzer时...