- 浏览: 3420406 次
- 性别:
- 来自: 珠海
文章分类
- 全部博客 (1633)
- Java (250)
- Android&HTML5 (111)
- Struts (10)
- Spring (236)
- Hibernate&MyBatis (115)
- SSH (49)
- jQuery插件收集 (55)
- Javascript (145)
- PHP (77)
- REST&WebService (18)
- BIRT (27)
- .NET (7)
- Database (105)
- 设计模式 (16)
- 自动化和测试 (19)
- Maven&Ant (43)
- 工作流 (36)
- 开源应用 (156)
- 其他 (16)
- 前台&美工 (119)
- 工作积累 (0)
- OS&Docker (83)
- Python&爬虫 (28)
- 工具软件 (157)
- 问题收集 (61)
- OFbiz (6)
- noSQL (12)
最新评论
-
HEZR曾嶸:
你好博主,这个不是很理解,能解释一下嘛//左边+1,上边+1, ...
java 两字符串相似度计算算法 -
天使建站:
写得不错,可以看这里,和这里的这篇文章一起看,有 ...
jquery 遍历对象、数组、集合 -
xue88ming:
很有用,谢谢
@PathVariable映射出现错误: Name for argument type -
jnjeC:
厉害,困扰了我很久
MyBatis排序时使用order by 动态参数时需要注意,用$而不是# -
TopLongMan:
非常好,很实用啊。。
PostgreSQL递归查询实现树状结构查询
http://blog.csdn.net/isea533/article/details/48791309
由于目前网上关于lucene的资料多是4.x或者更早版本的,5.x版本相比有较大的改动,为了方便学习5.x版本,本文对5.x的示例简单修改做个记录。
本文内容源自官方文档,在core/overview-summary.html上。
本文使用的具体版本是5.3.1,针对5.x版本都适用。
简单例子
Apache Lucene 是一个高性能并且功能全面的文本搜索引擎库,这里有一个如何使用Lucene进行索引和查询的简单例子。
代码输出结果:
Mybatis 示例之 foreach (下)
Mybatis 示例之 foreach (上)
Lucene API 分成了下面几个包
org.apache.lucene.analysis
定义了从Reader转换为TokenStream的抽象AnalyzerAPI,主要就是分词器。提供了一些默认的实现,包含StopAnalyzer和基于文法的StandardAnalyzer。中文分词可以参考 中文分词库 IKAnalyzer。
org.apache.lucene.codecs
提供了一个抽象的编码和解码的倒排索引结构,还提供了一些不同的实现可以应用于不同的程序需求。
org.apache.lucene.document
提供了一个简单的Document类。一个文档只是一组命名的字段,它的值可以是字符串或者Reader的实例。
org.apache.lucene.index
提供了两个主要的类:IndexWriter用于创建和给文档添加索引,IndexReader用于访问索引数据。
org.apache.lucene.search
提供代表查询的数据结构(例如TermQuery用于单独的关键字查询,PhraseQuery用于短句,BooleanQuery用于布尔联合查询)。
IndexSearcher将查询转换为TopDocs。一些QueryParsers提供了从字符串或者xml生成查询结构的功能。
org.apache.lucene.store
定义了一个抽象类来存储持久化数据,Directory这是一个由IndexOutput和IndexInput分别写和读取的指定文件的集合。提供了多个实现,包括FSDirectory,这个实现使用文件系统目录来存储文件。还有RAMDirectory类实现了文件驻留在内存中的数据结构。
org.apache.lucene.util
包含了一些有用的数据结构和工具类,例如FixedBitSet和PriorityQueue。
应用应该按下面的步骤使用Luncene
通过添加字段(Field)创建文档(Document);
创建IndexWriter,通过addDocument()方法添加文档(Document);
调用QueryParser.parser()方法从字符串生成查询对象;
创建IndexSearcher并通过search()方法进行查询。
最后
以上内容是Luncene中最基本的内容,关于上面每个包下面都还有一份详细的文档,本文后续可能会对这些内容做一些简单的介绍,如果大家需要用到Luncene,建议下载官方提供的下载,里面包含完整的文档内容。
由于目前网上关于lucene的资料多是4.x或者更早版本的,5.x版本相比有较大的改动,为了方便学习5.x版本,本文对5.x的示例简单修改做个记录。
本文内容源自官方文档,在core/overview-summary.html上。
本文使用的具体版本是5.3.1,针对5.x版本都适用。
简单例子
Apache Lucene 是一个高性能并且功能全面的文本搜索引擎库,这里有一个如何使用Lucene进行索引和查询的简单例子。
public static void main(String[] args) throws IOException, ParseException { Analyzer analyzer = new StandardAnalyzer(); //将索引存储到内存中 Directory directory = new RAMDirectory(); //如下想把索引存储到硬盘上,使用下面的代码代替 //Directory directory = FSDirectory.open(Paths.get("/tmp/testindex")); IndexWriterConfig config = new IndexWriterConfig(analyzer); IndexWriter iwriter = new IndexWriter(directory, config); String[] texts = new String[]{ "Mybatis分页插件 - 示例", "Mybatis 贴吧问答 第一期", "Mybatis 示例之 复杂(complex)属性(property)", "Mybatis极其(最)简(好)单(用)的一个分页插件", "Mybatis 的Log4j日志输出问题 - 以及有关日志的所有问题", "Mybatis 示例之 foreach (下)", "Mybatis 示例之 foreach (上)", "Mybatis 示例之 SelectKey", "Mybatis 示例之 Association (2)", "Mybatis 示例之 Association" }; for (String text : texts) { Document doc = new Document(); doc.add(new Field("fieldname", text, TextField.TYPE_STORED)); iwriter.addDocument(doc); } iwriter.close(); //读取索引并查询 DirectoryReader ireader = DirectoryReader.open(directory); IndexSearcher isearcher = new IndexSearcher(ireader); //解析一个简单的查询 QueryParser parser = new QueryParser("fieldname", analyzer); Query query = parser.parse("foreach"); ScoreDoc[] hits = isearcher.search(query, null, 1000).scoreDocs; //迭代输出结果 for (int i = 0; i < hits.length; i++) { Document hitDoc = isearcher.doc(hits[i].doc); System.out.println(hitDoc.get("fieldname")); } ireader.close(); directory.close(); }
代码输出结果:
Mybatis 示例之 foreach (下)
Mybatis 示例之 foreach (上)
Lucene API 分成了下面几个包
org.apache.lucene.analysis
定义了从Reader转换为TokenStream的抽象AnalyzerAPI,主要就是分词器。提供了一些默认的实现,包含StopAnalyzer和基于文法的StandardAnalyzer。中文分词可以参考 中文分词库 IKAnalyzer。
org.apache.lucene.codecs
提供了一个抽象的编码和解码的倒排索引结构,还提供了一些不同的实现可以应用于不同的程序需求。
org.apache.lucene.document
提供了一个简单的Document类。一个文档只是一组命名的字段,它的值可以是字符串或者Reader的实例。
org.apache.lucene.index
提供了两个主要的类:IndexWriter用于创建和给文档添加索引,IndexReader用于访问索引数据。
org.apache.lucene.search
提供代表查询的数据结构(例如TermQuery用于单独的关键字查询,PhraseQuery用于短句,BooleanQuery用于布尔联合查询)。
IndexSearcher将查询转换为TopDocs。一些QueryParsers提供了从字符串或者xml生成查询结构的功能。
org.apache.lucene.store
定义了一个抽象类来存储持久化数据,Directory这是一个由IndexOutput和IndexInput分别写和读取的指定文件的集合。提供了多个实现,包括FSDirectory,这个实现使用文件系统目录来存储文件。还有RAMDirectory类实现了文件驻留在内存中的数据结构。
org.apache.lucene.util
包含了一些有用的数据结构和工具类,例如FixedBitSet和PriorityQueue。
应用应该按下面的步骤使用Luncene
通过添加字段(Field)创建文档(Document);
创建IndexWriter,通过addDocument()方法添加文档(Document);
调用QueryParser.parser()方法从字符串生成查询对象;
创建IndexSearcher并通过search()方法进行查询。
最后
以上内容是Luncene中最基本的内容,关于上面每个包下面都还有一份详细的文档,本文后续可能会对这些内容做一些简单的介绍,如果大家需要用到Luncene,建议下载官方提供的下载,里面包含完整的文档内容。
发表评论
-
分布式存储系统GlusterFS安装配置
2016-06-27 14:51 1029http://navyaijm.blog.51cto.com/ ... -
分布式查询 presto 入门安装使用
2016-06-24 15:44 2501http://my.oschina.net/chengxiao ... -
跟我学习dubbo
2016-06-17 15:20 1065跟我学习dubbo-目录 http://bluereader. ... -
JavaMelody监控web服务器
2016-06-17 14:20 1177JavaMelody监控web服务器 http://my.os ... -
freemarker使用记录
2016-06-08 16:24 1308freeMarker语法 http://uule.iteye. ... -
freemarker判断是否为空
2016-06-08 16:03 2http://www.oschina.net/code/sni ... -
ehcache 分布式支持
2016-06-05 22:26 1097原文 http://my.oschina.net/glenxu ... -
Intellij IDEA插件开发入门
2016-05-26 11:42 2881原文: http://blog.csdn.net/dc_726 ... -
阿里巴巴Druid数据源的配置与使用
2016-05-24 17:42 1541http://my.oschina.net/wjme/blog ... -
分布式任务调度组件 Uncode-Schedule
2016-05-13 14:47 2286http://www.oschina.net/p/uncode ... -
mysql中间件研究(Atlas,cobar,TDDL), 分库分表插件
2016-05-09 14:15 3441http://www.guokr.com/blog/47576 ... -
Fedora安装Redis
2016-05-04 08:56 1410管理工具: centos6.3下安装phpredisadmin ... -
redis-install.sh
2016-05-04 08:56 4#!/bin/bash # From here: http: ... -
redis 集群中Session解决方案之Spring Session
2016-05-04 08:54 1313集群中Session解决方案之Spring Session h ... -
使用Spring-data进行Redis操作
2016-05-04 08:54 4790使用Spring-data进行Redis操作 http://z ... -
Shiro集群实现
2016-05-04 08:53 2309apache shiro集群实现(一) session共享 h ... -
spring 注解方式下使用commons-validator 验证表单
2016-05-03 11:08 3074原文: http://www.programgo.com/ar ... -
Hessian 二进制RPC协议整合到SpringMVC
2016-04-27 09:47 1737SpringMVC集成Hessianhttp://blog.c ... -
shiro过滤器过滤属性含义
2016-04-21 13:51 1314http://my.oschina.net/cng1985/b ... -
Hadoop 2.6.4分布式集群环境搭建
2016-04-13 11:45 750http://my.oschina.net/jackieyea ...
相关推荐
作为Apache Lucene项目的一部分,Lucene.Net.dll为开发者提供了在.NET环境中构建高性能搜索引擎的能力。本文将深入探讨2.9.2版本的Lucene.Net.dll,揭示其背后的强大功能和核心技术。 Lucene.Net.dll是基于Java版本...
《Lucene4.X实战类百度搜索的大型文档海量搜索系统》是针对企业信息化系统中文档中心管理系统的深度应用,利用Apache Lucene构建一个强大的搜索引擎。Lucene作为一个高性能、全文本检索库,它允许开发者轻松地在应用...
Lucene.dll 是 Apache Lucene 库的 .NET 版本,它是一个高性能、全文本搜索库,被广泛应用于各种应用程序中进行文本检索和索引。Apache Lucene 提供了强大的搜索功能,包括分词、评分、排序等,而 Lucene.dll 是这个...
《Ajax+Lucene构建搜索引擎》源代码是针对Lucene 2.x版本的一个示例项目,旨在教用户如何结合Ajax技术和Lucene搜索引擎库来创建高效的、交互式的搜索功能。Lucene是一个开源全文检索库,由Apache软件基金会开发,它...
Lucene.NET是Apache软件基金会开发的一个开源全文搜索库,它为.NET开发者提供了一个强大、高效的全文检索引擎框架。本文将深入探讨Lucene.Net.DemoLib.dll,这是一个基于Lucene.NET的示例库,旨在帮助开发者更好地...
**Lucene创建索引与搜索"java"关键字的示例代码** Apache Lucene是一个高性能、全功能的文本搜索引擎库,广泛应用于各种系统中用于实现高效、精准的全文检索功能。这个示例代码将向我们展示如何使用Lucene来创建一...
在Lucene5.x版本中,引入了更高效的倒排索引结构和查询优化策略,增强了对多语言的支持,包括对中文的处理。Lucene允许开发者自定义分词器,这就为mmseg4j与Lucene的结合提供了可能。 **mmseg4j与Lucene5.x整合** ...
Lucene.NET是Apache Lucene项目的一个.NET版本,它是一个开放源代码的信息检索库,提供了强大的文本分析、索引和搜索功能。Lucene.Net完全用C#重写了Java版Lucene的核心算法,保持了与原版的高度兼容性,同时充分...
Lucene 是一个高性能、全文本搜索库,由 Apache 软件基金会开发并维护。它提供了强大的索引和搜索功能,是开源社区中最受欢迎的搜索框架之一。Lucene 可以被集成到各种 Java 应用程序中,用于实现高效的全文检索。它...
Solr 5.x版本主要提升了性能,增强了稳定性,并引入了新的特性和改进,如SolrCloud的优化和更强大的数据分析能力。 **IKAnalyzer5的关键特性** 1. **灵活的配置**: IKAnalyzer5允许用户自定义分词规则,可以通过...
这里使用的是Lucene 8.10.1版本,根据实际情况可选择相应版本。 接下来,我们创建一个索引。索引是Lucene处理文档的基础,它将文本数据转换为可以快速搜索的结构。以下是一个简单的索引创建示例: ```java import ...
doc.add(new StringField("title", "Lucene示例", Field.Store.YES)); doc.add(new StringField("content", "这是一个简单的Lucene应用", Field.Store.YES)); indexWriter.addDocument(doc); indexWriter.close...
1. 下载最新版本的Lucene库(通常为jar文件)。 2. 将下载的jar文件添加到项目的类路径中,这可以通过右键点击项目,选择"Build Path" -> "Configure Build Path" -> "Libraries" -> "Add Jars" 或 "Add External ...
在信息技术领域,搜索引擎是一个不可或缺的部分,而Apache Lucene作为一款高性能、全文本搜索库,为开发者提供了强大的文本检索能力。本文将深入探讨如何使用Lucene进行基本操作,通过“HelloWorld”实例来开启你的...
Lucene.NET是一个开源全文搜索引擎库,它是Apache Lucene项目的一部分,专为.NET Framework设计。这个压缩包特别针对中文语言,提供了解决中文文本分词问题的关键组件。 在Lucene.NET中,分词是文本分析的一个重要...
总结,利用Apache Lucene、POI和Tika,我们可以有效地处理doc.xlsx文档,将其内容纳入Lucene索引,从而实现高效的全文搜索。在实际开发中,根据项目需求,可能还需要考虑性能优化、错误处理以及与其他系统的集成等...
Lucene 6.5.1作为该系列的一个版本,继承了Lucene 6.x系列的诸多优点,并在此基础上进行了优化与增强,以提高搜索性能和稳定性。 ### 特性与改进 #### 1. 性能提升 - **索引速度**: Lucene 6.5.1通过改进内部算法...
因此,S4LuceneLib应运而生,它是一个专门为iOS开发的、基于Apache Lucene的本地化版本,允许iOS应用具备强大的全文搜索功能。 S4LuceneLib的核心目标是将Lucene的精髓带到iOS世界,提供与原版Lucene相似的功能,...
**Lucene入门示例** Lucene是一个开源的全文搜索引擎库,由Apache软件基金会开发并维护。它是Java语言实现的,但提供了多种语言的接口,包括Python、C#等。本示例将帮助初学者理解Lucene的基本用法,以及如何在实际...