`
yixin416757625
  • 浏览: 20383 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

lucene 第一个例子

 
阅读更多

 

 

 闲暇时间稍微对lucene作了了解,写了一小例子。简单,也没啥好讲解的。

 

package com.lucune.test;

import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.IOException;

import org.apache.lucene.analysis.standard.StandardAnalyzer;
import org.apache.lucene.document.Document;
import org.apache.lucene.document.Field;
import org.apache.lucene.index.IndexWriter;
import org.apache.lucene.queryParser.QueryParser;
import org.apache.lucene.search.Hits;
import org.apache.lucene.search.IndexSearcher;
import org.apache.lucene.search.Query;
import org.apache.lucene.store.FSDirectory;


public class IndexFiles {

	public static void main(String[] args) throws Exception{
		
		String[] s = new String[10];
		
		String indexPath = "E:\\index";	//索引存放目录
		IndexWriter writer;
		writer = new IndexWriter(FSDirectory.getDirectory(new File(indexPath),true),
				new StandardAnalyzer(),true);
		
		String path = "E:\\bbs.sql";
		FileReader fr = new FileReader(path);
		Document doc = new Document();
		doc.add(new Field("body", fr));
		doc.add(new Field("path", path , Field.Store.YES, Field.Index.TOKENIZED));
		
		
		String path2 = "E:\\plan.txt";
		FileReader fr2 = new FileReader(path2);
		Document doc2 = new Document();
		doc2.add(new Field("body", fr2));
		doc2.add(new Field("path", path2 , Field.Store.YES, Field.Index.TOKENIZED));
		
		
		String path3 = "E:\\sql.sql";
		FileReader fr3 = new FileReader(path3);
		Document doc3 = new Document();
		doc3.add(new Field("body", fr3));
		doc3.add(new Field("path", path3 , Field.Store.YES, Field.Index.TOKENIZED));
		
		
		writer.addDocument(doc);
		writer.addDocument(doc2);
		writer.addDocument(doc3);
		writer.close();
		fr3.close();
		fr2.close();
		fr.close();
		
		
		IndexSearcher search = new IndexSearcher(FSDirectory.open(new File(indexPath)));
		QueryParser parser = new QueryParser("body",new StandardAnalyzer());
		
		Query query = parser.parse("jquery");
		Hits hits = search.search(query);
		for(int i=0;i<hits.length();i++){
			Document cc = hits.doc(i);
			System.out.println(cc.get("path"));
			System.out.println(hits.score(i));
			FileReader fe = new FileReader(cc.get("path"));
			BufferedReader bf = new BufferedReader(fe);
			String rl;
			while((rl=bf.readLine())!=null){
				System.out.println(rl);
			}
			System.out.println();
			bf.close();
			fe.close();
			
		}
		//System.out.println(hits.length());
		search.close();
		
		
	}
}

 

 

分享到:
评论

相关推荐

    LUCENE的搜索引擎例子

    1. **索引创建**:这是搜索引擎的第一步,我们需要遍历要索引的数据源(例如文件系统、数据库等),读取内容,并使用Lucene的Analyzer进行分词,然后创建Term(词项)和Document(文档)。Analyzer是负责文本分析的...

    lucene检索小例子

    总之,"lucene检索小例子"是一个实用的教程,通过它你可以学习到如何利用Lucene这一强大的全文搜索引擎库,实现高效、精准的文本检索功能。无论是在网站、数据库还是其他任何需要搜索功能的应用中,Lucene都是一个...

    第一个lucene程序

    1. **创建索引**:这是Lucene工作的第一步,它会把文档内容解析成一系列的术语(tokens),然后为每个术语建立倒排索引。倒排索引是一种数据结构,它允许快速查找包含特定术语的文档。 2. **索引写入**:在创建索引...

    lucene_demo例子

    《Lucene实战(第2版) PDF高清中文版.pdf》这本书是关于Apache Lucene的一本经典教程,适合初学者入门。Lucene是一个全文搜索引擎库,它提供了强大的文本搜索功能,被广泛应用于各种信息检索系统中。这本书详细介绍了...

    Lucene5+HanLP分词例子

    首先,`Lucene5`是一个强大的全文搜索引擎库,由Apache软件基金会开发。它提供了核心的搜索功能,如索引、查询解析、评分和排序,被广泛应用于各种项目中。在`Lucene5`中,文本预处理是非常关键的步骤,其中包括分词...

    lucene in action 书中例子源码

    《Lucene in Action》是一本深受开发者喜爱的书籍,它深入浅出地介绍了Apache Lucene这个全文搜索引擎库的使用和实现细节。这本书的实例代码涵盖了Lucene的核心功能和高级用法,是学习Lucene不可或缺的参考资料。...

    一个例子教你学懂搜索引擎(lucene)

    分词是搜索引擎处理文本的第一步,Lucene内置了多种分词器,如StandardAnalyzer,它可以根据语言特性对文本进行切分。分词后,Lucene会统计每个词在文档中的出现频率,形成词频信息。然后,Lucene会构建倒排索引,将...

    Lucene使用代码实例之搜索文档

    Lucene是一个高性能、全文检索库,它提供了强大的文本分析和索引功能,广泛应用于搜索引擎开发和其他需要高效文本处理的场景。本篇文章主要面向初学者,通过实例详细解释如何使用Lucene进行文档搜索。 首先,我们...

    LuceneInAction(第2版)_中文版.rar

    《Lucene In Action》是关于Apache Lucene搜索引擎库的一本权威指南,第二版更是全面更新,涵盖了Lucene的最新版本和特性。这本书以其深入浅出的讲解方式,为读者揭示了全文检索和索引的核心原理,以及如何在实际...

    lucene2.9.1所有最新开发包及源码及文档

    ★2) 块由若干文档(Document)组成: 一个文件映射成一个文档。数据库表中的一条记录映射成一个文档。 ★3) 文档由若干域(Field)组成:文件的属性(文件路径,文件的内容)映射成一个域。记录的某个字段映射成一个域。...

    lucene 3.4基本应用

    在Lucene中,建立索引是搜索的第一步。首先,我们需要创建一个`IndexWriter`实例,这是负责写入索引的主要类。`IndexWriter`配置包括分词器(Tokenizer)、分析器(Analyzer)和目录(Directory)。分词器将文档内容...

    Lucene3.0创建索引

    // 第一个参数是存储目录 // 第二个参数是分析器(用于分析文档内容) // 第三个参数表示是否为新建索引(true新建,false追加) // 第四个参数是字段长度限制 IndexWriter indexWriter = new IndexWriter(dir, new ...

    Lucene in action 2nd edition

    《Lucene in Action》第二版是一本全面介绍Apache Lucene 3.0的书籍,它被誉为是美国大学搜索引擎课程的标准教材之一。本书由Michael McCandless、Erik Hatcher和Otis Gospodnetic三位作者共同编写,并得到了Apache ...

    Lucene搜索-引擎开发权威经典pdf+源码第二部分

    1. **索引构建**:Lucene的核心功能之一是创建倒排索引,这是一种高效的数据结构,用于快速查找文档中包含特定词项的信息。这部分可能会讲解如何使用Lucene API来添加文档、分词、创建倒排索引以及优化索引过程。 2...

    \Lucene Nutch和安装说明文旦

    描述中的“LuceneChapter12 光盘使用说明.DOC”可能是指一份包含第12章内容的文档,这部分可能详细解释了如何在实际操作中运用Lucene和Nutch,尤其是光盘中的资源如何被利用。 **Lucene详解** Apache Lucene是一个...

    Annotated Lucene 中文版 Lucene源码剖析

    - 创建一个简单的索引,并进行基本的查询操作,这是入门Lucene的第一步。 - **Lucene Roadmap**: - 了解Lucene的发展历程及其未来规划对于开发者来说非常重要。 #### 索引文件结构 - **索引数据术语和约定**:...

    Lucene in Action 2nd Edition

    当Lucene的第一次打五年前的场景,这是令人惊叹的。通过使用这个开源的,高度可扩展,超快速的搜索引擎,开发人员可以集成到应用程序的搜索快速,高效。已经改变了很多,因为当时搜索到大多数企业应用程序中不可或缺...

    Lucene In Action second edition

    ##### 3.1 第一部分:入门篇 这部分内容旨在帮助读者快速了解 Lucene 的基本概念和工作原理。包括但不限于: - **第 1 章:简介**:介绍 Lucene 的历史和发展现状,解释为什么选择使用 Lucene。 - **第 2 章:快速...

    Lucene_in_ Action

    在第一部分“Core Lucene”中,作者首先介绍了Lucene的基本概念和用途,帮助读者理解Lucene的核心功能。这部分可能包括以下几个关键知识点: 1. **Lucene简介**:Lucene作为一个高性能的全文检索库,它的主要功能是...

Global site tag (gtag.js) - Google Analytics