- 浏览: 3363801 次
- 性别:
- 来自: 珠海
文章分类
- 全部博客 (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 993http://navyaijm.blog.51cto.com/ ... -
分布式查询 presto 入门安装使用
2016-06-24 15:44 2467http://my.oschina.net/chengxiao ... -
跟我学习dubbo
2016-06-17 15:20 1032跟我学习dubbo-目录 http://bluereader. ... -
JavaMelody监控web服务器
2016-06-17 14:20 1145JavaMelody监控web服务器 http://my.os ... -
freemarker使用记录
2016-06-08 16:24 1279freeMarker语法 http://uule.iteye. ... -
freemarker判断是否为空
2016-06-08 16:03 2http://www.oschina.net/code/sni ... -
ehcache 分布式支持
2016-06-05 22:26 1057原文 http://my.oschina.net/glenxu ... -
Intellij IDEA插件开发入门
2016-05-26 11:42 2841原文: http://blog.csdn.net/dc_726 ... -
阿里巴巴Druid数据源的配置与使用
2016-05-24 17:42 1495http://my.oschina.net/wjme/blog ... -
分布式任务调度组件 Uncode-Schedule
2016-05-13 14:47 2240http://www.oschina.net/p/uncode ... -
mysql中间件研究(Atlas,cobar,TDDL), 分库分表插件
2016-05-09 14:15 3391http://www.guokr.com/blog/47576 ... -
Fedora安装Redis
2016-05-04 08:56 1378管理工具: 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 1273集群中Session解决方案之Spring Session h ... -
使用Spring-data进行Redis操作
2016-05-04 08:54 4732使用Spring-data进行Redis操作 http://z ... -
Shiro集群实现
2016-05-04 08:53 2263apache shiro集群实现(一) session共享 h ... -
spring 注解方式下使用commons-validator 验证表单
2016-05-03 11:08 3038原文: http://www.programgo.com/ar ... -
Hessian 二进制RPC协议整合到SpringMVC
2016-04-27 09:47 1705SpringMVC集成Hessianhttp://blog.c ... -
shiro过滤器过滤属性含义
2016-04-21 13:51 1275http://my.oschina.net/cng1985/b ... -
Hadoop 2.6.4分布式集群环境搭建
2016-04-13 11:45 711http://my.oschina.net/jackieyea ...
相关推荐
Lucene是一套用于全文检索和搜寻的开源程式库,由Apache软件基金会支持和提供。Lucene提供了一个简单却强大的应用程式接口,能够做全文索引和搜寻。在Java开发环境里Lucene是一个成熟的免费开源工具。就其本身而言,...
lucene-starter 该存储库包含与Apache Lucene一起使用的示例
Lucene服务器该项目在 6.x版快照源之上提供了一个简单的示例HTTP服务器,通过简单的REST / JSON HTTP API有效地公开了Lucene的许多核心和模块功能。 请注意,这段代码都是非常新的,可能会有令人兴奋的错误! 但这也...
ApacheCon NA 2015 的演示文稿和示例项目(Apache CXF、Tika 和 Lucene:搜索 JAX-RS 方式的力量)
Lucene索引代码示例: Directory dir = FSDirectory.getDirectory(indexDir); Analyzer anlyzer = new SimpleAnalyzer(); IndexWriter writer = new IndexWriter(dir, analyzer, true); Document doc = new Document...
AutoTips基于搜索引擎Apache Lucene实现。AutoTips提供统一UI。 WAP浏览器 j2wap j2wap 是一个基于Java的WAP浏览器,目前处于BETA测试阶段。它支持WAP 1.2规范,除了WTLS 和WBMP。 Java注册表操作类 jared jared是...
AutoTips基于搜索引擎Apache Lucene实现。AutoTips提供统一UI。 WAP浏览器 j2wap j2wap 是一个基于Java的WAP浏览器,目前处于BETA测试阶段。它支持WAP 1.2规范,除了WTLS 和WBMP。 Java注册表操作类 jared jared是...
AutoTips基于搜索引擎Apache Lucene实现。AutoTips提供统一UI。 WAP浏览器 j2wap j2wap 是一个基于Java的WAP浏览器,目前处于BETA测试阶段。它支持WAP 1.2规范,除了WTLS 和WBMP。 Java注册表操作类 jared jared是...
AutoTips基于搜索引擎Apache Lucene实现。AutoTips提供统一UI。 WAP浏览器 j2wap j2wap 是一个基于Java的WAP浏览器,目前处于BETA测试阶段。它支持WAP 1.2规范,除了WTLS 和WBMP。 Java注册表操作类 jared jared是...
AutoTips基于搜索引擎Apache Lucene实现。AutoTips提供统一UI。 WAP浏览器 j2wap j2wap 是一个基于Java的WAP浏览器,目前处于BETA测试阶段。它支持WAP 1.2规范,除了WTLS 和WBMP。 Java注册表操作类 jared jared是...
AutoTips基于搜索引擎Apache Lucene实现。AutoTips提供统一UI。 WAP浏览器 j2wap j2wap 是一个基于Java的WAP浏览器,目前处于BETA测试阶段。它支持WAP 1.2规范,除了WTLS 和WBMP。 Java注册表操作类 jared jared是...
[邮件列表]] Solr操作员在Kubernetes中管理Apache Solr云。 它基于框架构建。 该项目目前处于beta( v1beta1 ),虽然我们预计不会以向后不兼容的方式更改API,但尚无此保证。 如果您在使用Solr运算符时遇到问题,请...
ApacheHadoop由ApacheSoftwareFoundation公司于2005年秋天作为Lucene的子项目Nutch的一部分正式引入。它受到最先由GoogleLab开发的Map/Reduce和GoogleFileSystem(GFS)的启发。它成为一个独立项目的时间已有...
AutoTips基于搜索引擎Apache Lucene实现。AutoTips提供统一UI。 WAP浏览器 j2wap j2wap 是一个基于Java的WAP浏览器,目前处于BETA测试阶段。它支持WAP 1.2规范,除了WTLS 和WBMP。 Java注册表操作类 jared jared是...
AutoTips基于搜索引擎Apache Lucene实现。AutoTips提供统一UI。 WAP浏览器 j2wap j2wap 是一个基于Java的WAP浏览器,目前处于BETA测试阶段。它支持WAP 1.2规范,除了WTLS 和WBMP。 Java注册表操作类 jared jared是...
AutoTips基于搜索引擎Apache Lucene实现。AutoTips提供统一UI。 WAP浏览器 j2wap j2wap 是一个基于Java的WAP浏览器,目前处于BETA测试阶段。它支持WAP 1.2规范,除了WTLS 和WBMP。 Java注册表操作类 jared jared是...
AutoTips基于搜索引擎Apache Lucene实现。AutoTips提供统一UI。 WAP浏览器 j2wap j2wap 是一个基于Java的WAP浏览器,目前处于BETA测试阶段。它支持WAP 1.2规范,除了WTLS 和WBMP。 Java注册表操作类 jared jared是...
AutoTips基于搜索引擎Apache Lucene实现。AutoTips提供统一UI。 WAP浏览器 j2wap j2wap 是一个基于Java的WAP浏览器,目前处于BETA测试阶段。它支持WAP 1.2规范,除了WTLS 和WBMP。 Java注册表操作类 jared jared是...
AutoTips基于搜索引擎Apache Lucene实现。AutoTips提供统一UI。 WAP浏览器 j2wap j2wap 是一个基于Java的WAP浏览器,目前处于BETA测试阶段。它支持WAP 1.2规范,除了WTLS 和WBMP。 Java注册表操作类 jared jared是...
AutoTips基于搜索引擎Apache Lucene实现。AutoTips提供统一UI。 WAP浏览器 j2wap j2wap 是一个基于Java的WAP浏览器,目前处于BETA测试阶段。它支持WAP 1.2规范,除了WTLS 和WBMP。 Java注册表操作类 jared jared是...