`
yangzc106
  • 浏览: 156407 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

lucene使用方式

阅读更多

自己写了个小例子

package com.lucene.test;

import java.io.File;
import java.io.IOException;

import org.apache.lucene.analysis.Analyzer;
import org.apache.lucene.analysis.standard.StandardAnalyzer;
import org.apache.lucene.document.Document;
import org.apache.lucene.document.Field;
import org.apache.lucene.document.Field.Store;
import org.apache.lucene.index.CorruptIndexException;
import org.apache.lucene.index.IndexWriter;
import org.apache.lucene.index.IndexWriter.MaxFieldLength;
import org.apache.lucene.queryParser.ParseException;
import org.apache.lucene.queryParser.QueryParser;
import org.apache.lucene.search.IndexSearcher;
import org.apache.lucene.search.Query;
import org.apache.lucene.search.ScoreDoc;
import org.apache.lucene.search.TopDocs;
import org.apache.lucene.store.FSDirectory;
import org.apache.lucene.store.LockObtainFailedException;

public class IndexWriterTest {
	
	public static void main(String[] args) {
		try {
			File file = new File("d:/index");
			IndexWriter writer = new IndexWriter(file, new StandardAnalyzer(), MaxFieldLength.UNLIMITED);
			
			Document doc = new Document();//测试 lucene能否实现不同属性检索
			Field field = new Field("title", "测试lucene能否实现不同属性检索", Store.YES, Field.Index.ANALYZED, Field.TermVector.NO);
			doc.add(field);
			writer.addDocument(doc);
			
			doc = new Document();
			field = new Field("descript", "描述内容", Store.YES, Field.Index.ANALYZED, Field.TermVector.NO);
			doc.add(field);
			writer.addDocument(doc);
			
			writer.optimize();
			writer.close();
			
			
			//检索
			IndexSearcher search = new IndexSearcher(FSDirectory.getDirectory("d:/index"));
			Analyzer analyzer = new StandardAnalyzer();
			
			QueryParser parser = new QueryParser("descript", analyzer);
			Query query = parser.parse("描述");
//			BooleanQuery q = new BooleanQuery();
//			RangeQuery range = new RangeQuery(new Term("time", ""), new Term("time",""), false);
			
			TopDocs docs = search.search(query, 10);
			System.out.println("找到记录共"+docs.totalHits+"条。");
			ScoreDoc[] d = docs.scoreDocs;
			for(ScoreDoc s: d){
				int id = s.doc;
				Document dd = search.doc(id);
				System.out.println(dd.get("descript"));
			}
			
			
		} catch (CorruptIndexException e) {
			e.printStackTrace();
		} catch (LockObtainFailedException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		} catch (ParseException e) {
			e.printStackTrace();
		}
	}
}

 

分享到:
评论

相关推荐

    lucene详细使用教程

    在使用 Lucene 之前,首先需要将其添加到项目依赖中。如果你使用的是 Maven,可以在 pom.xml 文件中添加对应的 Lucene 依赖。对于其他构建工具,如 Gradle 或 Ivy,也有相应的配置方式。确保选择与项目所用 Java ...

    Lucene 使用正则表达式

    ### Lucene 使用正则表达式 #### 知识点概览 1. **Lucene简介** 2. **正则表达式(regex)在Lucene中的应用** 3. **regexQuery详解** 4. **示例代码解析** 5. **索引创建与查询流程** 6. **正则表达式的语法** #### ...

    Lucene使用教程

    ### Lucene 使用教程 #### 一、Lucene简介与安装 **1.1 Lucene简介** Lucene是一款高性能、全功能的文本搜索引擎库,由Java编写而成,它为开发者提供了构建搜索应用程序的基础工具。Lucene的主要特点包括: - **...

    Lucene示例 BM25相似度计算

    在4.7.1版本中,Lucene已经相当成熟,支持多种索引优化策略和查询方式。 索引构建是Lucene的核心部分。在这个示例中,开发者会展示如何使用Lucene将文本数据转化为高效的倒排索引结构。这个过程包括分析文本、创建...

    lucene,solr的使用

    - **使用方式**:Lucene通常作为库直接集成到应用程序中,而Solr则作为一个独立的服务运行。 - **功能丰富程度**:Solr相对于Lucene来说,提供了更多高级功能,如分面搜索、自动完成等。 - **集群支持**:Solr支持...

    Lucene使用

    在使用2012版时异常:ClassNotFoundException: org.apache.lucene.analysis.tokenattributes.CharTermAttribute 庖丁分词 使用 paoding-analysis-2.0.4-beta.zip 版时异常 Exception in thread "main" java.lang....

    经典的lucene实例代码及详细解析以及lucene结构流程介绍

    Lucene应用是指使用Lucene搜索引擎库构建搜索应用程序的过程。Lucene应用程序可以用于各种领域,包括文本搜索、图片搜索和视频搜索等。 在上面的代码中,我们使用了Lucene搜索引擎库构建了一个文本搜索应用程序。该...

    使用lucene全文检索数据库

    **使用Lucene全文检索数据库** Lucene是一个高性能、全文本搜索库,由Apache软件基金会开发。它是Java编写的,能够帮助开发者在各种应用程序中实现强大的全文检索功能。在这个项目中,我们将探讨如何利用Lucene ...

    lucene使用.zip

    3. **内存索引和磁盘索引**:Lucene 可以在内存或磁盘上存储索引,根据应用场景选择合适的存储方式。 4. **分布式搜索**:通过 Solr 或 Elasticsearch 等扩展,可以实现分布式搜索,处理大规模数据。 5. **文档...

    lucene-4.7.0全套jar包

    - **Codecs模块**:提供了不同的编码方式,用于存储和检索索引,如`lucene-codecs-4.7.0.jar`。 - **Contrib模块**:包含社区贡献的扩展功能,可能包括特殊分词器、搜索建议等,如`lucene-join-4.7.0.jar`、`lucene...

    Lucene资料大全(包括Lucene_in_Action书等)

    特别提到了"尚学堂科技_张志宇_lucene.ppt",这可能是一个由尚学堂科技的张志宇制作的Lucene讲解PPT,通常这样的PPT会以简洁明了的方式介绍Lucene的基本概念、使用方法和实战技巧。 **Lucene核心知识点** Apache ...

    lucene部分常用代码

    为了更好地使用Lucene,需要了解其核心API和常用代码。本文将对Lucene部分常用代码进行详细解释,包括多字段搜索、多条件搜索、过滤等。 多字段搜索 在Lucene中,我们可以使用MultifieldQueryParser来指定多个搜索...

    使用Lucene对doc、docx、pdf、txt文档进行全文检索功能的实现 - 干勾鱼的CSDN博客 - CSDN博客1

    Apache Lucene 是一个开源的全文检索库,它提供了一种高效、可扩展的方式来构建全文搜索引擎。在Java开发中,Lucene被广泛用于实现文件的全文检索功能,包括对doc、docx、pdf、txt等常见格式文档的文本内容检索。在...

    lucene所有的jar包

    4. **codecs jar包**:定义了索引的编码和解码方式,如`lucene-codecs-4.9.0.jar`,不同版本的编码格式可能会影响索引的存储效率和检索性能。 5. **contrib jar包**:这些是社区贡献的扩展功能,例如`lucene-memory...

    lucene站内搜索

    2. **分词(Tokenization)**: Lucene使用Analyzer对输入文本进行分词,将长句子拆分成独立的单词或短语,这是建立索引的基础。 3. **文档(Document)**: 在Lucene中,每个要搜索的信息被视为一个Document,包含多...

    Lucene的的学习资料及案例

    Lucene是一个高性能、全文检索库,由Apache软件基金会开发并维护,是Java编程语言中广泛使用的搜索引擎库。它提供了一个简单的API,使得开发者能够方便地在应用中实现全文检索功能。本篇文章将围绕Lucene的核心概念...

Global site tag (gtag.js) - Google Analytics