
Lucene学习
文章平均质量分 62
baobeituping
积极,开朗,健康,向上.本人刚失恋,郁闷ING
展开
-
Lucene入门以及例子
Lucene是apache组织的一个用java实现全文搜索引擎的开源项目。 其功能非常的强大,api也很简单。总得来说用Lucene来进行建立 和搜索和操作数据库是差不多的(有点像),Document可以看作是 数据库的一行记录,Field可以看作是数据库的字段。用lucene实 现搜索引擎就像用JDBC实现连接数据库一样简单。 Lucene2.0,它与以前广泛应用和介绍的Lucene 1...原创 2010-12-17 14:55:24 · 125 阅读 · 0 评论 -
Lucene过滤器
有的应用有些要求,对于某类型的内容即使满足条件了,但是也不能被搜索出来,lucene中提供了过滤器的功能,通过自定义的过滤器继承Filter,从而实现特定的过滤功能。Filter是一种过滤行为BitSet是一种位集合队列,这个队列中只有两种取值,TRUE或FALSE,LUCENE以这两种取值代表文档是否被过滤,也就是说,LUCENE返回结果时,会首先遍历BITSET,仅将那些对应值为TRUE的...原创 2010-12-21 20:05:00 · 186 阅读 · 0 评论 -
Lucene从结果中取出数据
有些应用,比如我们首先要搜索一个Person的索引文件,然后通过该索引文件得到和该人对应的客户编码,然后通过客户编码再去查和客户对应的客户信息。这样要进行两次索引的查找。但是LUCENE提供了一个默认的QueryFilter的实现,他可以从搜索的结果中再次查找。 例子:(以上篇文档的索引为例)public static void main(String[] args) { try...原创 2010-12-21 20:23:49 · 195 阅读 · 0 评论 -
Lucene分词器之庖丁解牛
注意:这里配置环境变量要重新启动系统后生效 我现在测试用的Lucene版本是lucene-2.4.0,它已经能够支持中文分词,但它是采用一元分词(逐字拆分)的方法,即把每一个汉字当作是一个词,这样会使建立的索引非常庞大,会影响查询效率.所以大多运用lucene的朋友,都会考虑使用其它的中文分词包,这里我就介绍最为常用的"庖丁解牛"分词包,当然它也是一个值得推荐的中文分词包. ...原创 2010-12-22 07:47:18 · 118 阅读 · 0 评论 -
Lucene 3.0的简单解析及变化
一、 概述 Lucene3.0(以下简称3.0)已于2009-11-25发布,3.0版本是重大的版本,改动很大。在API上做了很多的调整,已经删除了很多之前废弃的方法以及类,并支持了很多Java5 的新特性:包括泛型、可变参数、枚举和autoboxing等。 因此,此版本和2.x版本不能兼容,如要使用3.0版本,最好是在新项目中去使用,而不是去升级2.x或之前的版本!二、3...原创 2010-12-22 21:59:08 · 120 阅读 · 0 评论 -
Lucene3 建立索引
Lucene3在建立索引的API上有比较大的变化。直接上程序: package lucene3;import java.io.File;import java.sql.Connection;import java.sql.DriverManager;import java.sql.ResultSet;import java.sql.Statement;import java.util....原创 2010-12-22 22:25:41 · 130 阅读 · 0 评论 -
Lucene3 查询索引
package lucene3;import java.io.File;import org.apache.lucene.document.Document;import org.apache.lucene.index.Term;import org.apache.lucene.search.IndexSearcher;import org.apache.lucene.search.Que...原创 2010-12-22 22:46:41 · 111 阅读 · 0 评论 -
Lucene 3建立索引和查询索引详解
public void index() throws CorruptIndexException,LockObtainFailedException, IOException {// 索引目录 File indexDir = new File("D:/workspace/code/java/TestLucene3/index/txt/test/");// 注意:这里建立索引用的分词方...原创 2010-12-22 23:02:25 · 102 阅读 · 0 评论 -
Lucene 2 通过updateDocument更新索引
package com.lucene; import java.io.IOException; import org.apache.lucene.analysis.standard.StandardAnalyzer; import org.apache.lucene.document.Document; import org.apac...原创 2010-12-30 15:47:43 · 149 阅读 · 0 评论 -
bobo-browse
bobo-browse 是一款用java写的lucene扩展组件,通过它直接使用lucene建立的索引文件,就可以很方便的在lucene上实现分组统计功能。虽然lucene的使用已经很广泛,稳定性和效率方面都得到了大家的认可,但是在对搜索结果进行分组统计时就有些无能为力了。这样致使不少有需求的项目中,不得不修改lucene的源代码来实现分组统计的功能,要修改lucene源码首先必须对lucene的...原创 2011-02-10 10:22:03 · 1302 阅读 · 0 评论 -
Lucene4.10.2开发之高亮显示
转载请注明,原创地址,谢谢配合! http://qindongliang1922.iteye.com/blog/1953409 高亮功能一直都是全文检索的一项非常优秀的模块,在一个标准的搜索引擎中,高亮的返回命中结果,几乎是必不可少的一项需求,因为通过高亮,我们可以在我们的搜索界面上快速标记出用户的检索关键词,从而减少了用户自己寻找想要的结果,在一定程度上大大提高了用户的体验性和友好度。 那么...原创 2015-05-05 23:13:47 · 193 阅读 · 0 评论 -
Lucene对于短语匹配查询的用法
通常对于ID查询或者是比较确定字段内容的查询,我们就用:Term JobcnIDTerm = new Term("JobcnID", bean.getJobcnID()); TermQuery JobcnIDQuery = new TermQuery(JobcnIDTerm); 如果查询的内容是地址或是包括很多字数内容字段的查询,我们用:Analyzer analyzer = ...原创 2010-12-21 17:41:28 · 495 阅读 · 0 评论 -
Lucene 对所查的结果进行排序
前面介绍完查询以后,现在要对查询结果进行排序的显示。代码:package com.querytype;import org.apache.lucene.analysis.standard.StandardAnalyzer;import org.apache.lucene.document.Document;import org.apache.lucene.queryParser.Que...原创 2010-12-20 23:01:31 · 204 阅读 · 0 评论 -
Lucene API详解
1.Lucene的DocumentDocument类似于数据库中的一条数据,Lucene是通过Document来跟各种物理文件或数据库文件通信的。2.Lucene的FieldField相当于数据库中一条数据的某个字段,我们可以直接通过FIELD创建一个该类型的对象。他们直接的调用关系:Document doc = new Document();Field f1 = ne...原创 2010-12-18 22:08:51 · 142 阅读 · 0 评论 -
索引的合并
FSDirectory和RAMDirectoryFSDirectory:是与文件系统的目录有关的,指向文件系统中的一个路径,因此在LUCENE向其写入索引时,会直接将索引写在磁盘上。RAMDirectory是与内存相关的。在内存中存放一个区域,如果不将他的内容写入到磁盘,当机器退出后,里面的内容会消失。例如:RAMDirectory ram = new RAMDirecto...原创 2010-12-19 16:21:56 · 109 阅读 · 0 评论 -
Lucene 搜索方法(词条搜索)
词条搜索是LUCENE最为简单的一种搜索方式,通过对某个固定的词条的指定,它实现检索索引中存在该词条的所有文档。例子:package com;import org.apache.lucene.index.Term;import org.apache.lucene.search.Hits;import org.apache.lucene.search.IndexSearche...原创 2010-12-19 21:15:25 · 537 阅读 · 0 评论 -
Lucene 搜索方法(布尔搜索)
布尔搜索: 布尔查询的对象中,包含一个子句的集合。各种子句间都是“与”、“或”这样的布尔逻辑。 package com.querytype; import org.apache.lucene.index.Term; import org.apache.lucene.search.BooleanClause; import org.apache.lucene.search.BooleanQuery;...原创 2010-12-19 22:04:14 · 271 阅读 · 0 评论 -
Lucene 搜索方法(范围搜索)
在某些情况下,用户需要查找一定范围内的文档,比如时间,ID等。package com.querytype;import org.apache.lucene.index.Term;import org.apache.lucene.search.BooleanClause;import org.apache.lucene.search.Hits;import org.apache.lucene...原创 2010-12-19 22:54:23 · 237 阅读 · 0 评论 -
Lucene 的索引读取工具(IndexReader)
Lucene有一个很重要的工具IndexReader负责对索引的读取和维护工作。public static void main(String[] args) { try { IndexReader reader = IndexReader.open("d://demo"); for(int i=0;i<reader.numDocs();i++) { System....原创 2010-12-19 23:00:35 · 219 阅读 · 0 评论 -
Lucene 搜索方法(前缀搜索)
PrefixQuery是一种前缀搜索,在检索的时候,常常需要进行某种前缀查找,例如到图书馆查找一本书,可能只能记得书名的前面几个字,这种情况就可以用该种搜索模式。 public static void main(String[] args) { try { IndexSearcher search = new IndexSearcher("d://demo"); Term ter...原创 2010-12-20 10:27:26 · 380 阅读 · 0 评论 -
Lucene 搜索方法(短语搜索)
用户在搜索的时候,更多的情况是输入一个以上的关键字,这些关键字和可能组成一个短语。 代码:public static void main(String[] args) { try { IndexSearcher search = new IndexSearcher("d://demo"); PhraseQuery query = new PhraseQuery(); Te...原创 2010-12-20 11:15:33 · 659 阅读 · 0 评论 -
Lucene 搜索方法(多短语搜索)
短语搜索解决了短语搜索的问题,在很多情况下,用户输入某个关键字时,该关键字可以喝多种单字组成短语,例如,用户输入一个“声”字。它可以和“声音”,“声明”等字组成短语。LUCENE提供了MultiPhraseQuery来进行多短语搜索。代码:public static void main(String[] args) { try { IndexSearcher search = new...原创 2010-12-20 11:42:33 · 401 阅读 · 0 评论 -
Lucene 搜索方法(模糊搜索)
LUCENE提供了一种模糊搜索的机制。代码:public static void main(String[] args) { try { IndexSearcher search = new IndexSearcher("d://demo"); Term term1 = new Term("bookname","work"); FuzzyQuery query = ne...原创 2010-12-20 11:54:13 · 497 阅读 · 0 评论 -
使用Lucene-Spatial实现集成地理位置的全文检索
Lucene通过Spatial包提供了对基于地理位置的全文检索的支持,最典型的应用场景就是:“搜索中关村附近1公里内的火锅店,并按远近排序”。使用Lucene-Spatial添加对地理位置的支持,和之前普通文本搜索主要有两点区别: 1. 将坐标信息转化为笛卡尔层,建立索引 [java] view plaincopyprint? pri...原创 2015-05-27 17:33:42 · 368 阅读 · 0 评论