闲暇时间稍微对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();
}
}
分享到:
相关推荐
1. **索引创建**:这是搜索引擎的第一步,我们需要遍历要索引的数据源(例如文件系统、数据库等),读取内容,并使用Lucene的Analyzer进行分词,然后创建Term(词项)和Document(文档)。Analyzer是负责文本分析的...
总之,"lucene检索小例子"是一个实用的教程,通过它你可以学习到如何利用Lucene这一强大的全文搜索引擎库,实现高效、精准的文本检索功能。无论是在网站、数据库还是其他任何需要搜索功能的应用中,Lucene都是一个...
1. **创建索引**:这是Lucene工作的第一步,它会把文档内容解析成一系列的术语(tokens),然后为每个术语建立倒排索引。倒排索引是一种数据结构,它允许快速查找包含特定术语的文档。 2. **索引写入**:在创建索引...
《Lucene实战(第2版) PDF高清中文版.pdf》这本书是关于Apache Lucene的一本经典教程,适合初学者入门。Lucene是一个全文搜索引擎库,它提供了强大的文本搜索功能,被广泛应用于各种信息检索系统中。这本书详细介绍了...
首先,`Lucene5`是一个强大的全文搜索引擎库,由Apache软件基金会开发。它提供了核心的搜索功能,如索引、查询解析、评分和排序,被广泛应用于各种项目中。在`Lucene5`中,文本预处理是非常关键的步骤,其中包括分词...
《Lucene in Action》是一本深受开发者喜爱的书籍,它深入浅出地介绍了Apache Lucene这个全文搜索引擎库的使用和实现细节。这本书的实例代码涵盖了Lucene的核心功能和高级用法,是学习Lucene不可或缺的参考资料。...
分词是搜索引擎处理文本的第一步,Lucene内置了多种分词器,如StandardAnalyzer,它可以根据语言特性对文本进行切分。分词后,Lucene会统计每个词在文档中的出现频率,形成词频信息。然后,Lucene会构建倒排索引,将...
Lucene是一个高性能、全文检索库,它提供了强大的文本分析和索引功能,广泛应用于搜索引擎开发和其他需要高效文本处理的场景。本篇文章主要面向初学者,通过实例详细解释如何使用Lucene进行文档搜索。 首先,我们...
《Lucene In Action》是关于Apache Lucene搜索引擎库的一本权威指南,第二版更是全面更新,涵盖了Lucene的最新版本和特性。这本书以其深入浅出的讲解方式,为读者揭示了全文检索和索引的核心原理,以及如何在实际...
★2) 块由若干文档(Document)组成: 一个文件映射成一个文档。数据库表中的一条记录映射成一个文档。 ★3) 文档由若干域(Field)组成:文件的属性(文件路径,文件的内容)映射成一个域。记录的某个字段映射成一个域。...
在Lucene中,建立索引是搜索的第一步。首先,我们需要创建一个`IndexWriter`实例,这是负责写入索引的主要类。`IndexWriter`配置包括分词器(Tokenizer)、分析器(Analyzer)和目录(Directory)。分词器将文档内容...
// 第一个参数是存储目录 // 第二个参数是分析器(用于分析文档内容) // 第三个参数表示是否为新建索引(true新建,false追加) // 第四个参数是字段长度限制 IndexWriter indexWriter = new IndexWriter(dir, new ...
《Lucene in Action》第二版是一本全面介绍Apache Lucene 3.0的书籍,它被誉为是美国大学搜索引擎课程的标准教材之一。本书由Michael McCandless、Erik Hatcher和Otis Gospodnetic三位作者共同编写,并得到了Apache ...
1. **索引构建**:Lucene的核心功能之一是创建倒排索引,这是一种高效的数据结构,用于快速查找文档中包含特定词项的信息。这部分可能会讲解如何使用Lucene API来添加文档、分词、创建倒排索引以及优化索引过程。 2...
描述中的“LuceneChapter12 光盘使用说明.DOC”可能是指一份包含第12章内容的文档,这部分可能详细解释了如何在实际操作中运用Lucene和Nutch,尤其是光盘中的资源如何被利用。 **Lucene详解** Apache Lucene是一个...
- 创建一个简单的索引,并进行基本的查询操作,这是入门Lucene的第一步。 - **Lucene Roadmap**: - 了解Lucene的发展历程及其未来规划对于开发者来说非常重要。 #### 索引文件结构 - **索引数据术语和约定**:...
当Lucene的第一次打五年前的场景,这是令人惊叹的。通过使用这个开源的,高度可扩展,超快速的搜索引擎,开发人员可以集成到应用程序的搜索快速,高效。已经改变了很多,因为当时搜索到大多数企业应用程序中不可或缺...
##### 3.1 第一部分:入门篇 这部分内容旨在帮助读者快速了解 Lucene 的基本概念和工作原理。包括但不限于: - **第 1 章:简介**:介绍 Lucene 的历史和发展现状,解释为什么选择使用 Lucene。 - **第 2 章:快速...
在第一部分“Core Lucene”中,作者首先介绍了Lucene的基本概念和用途,帮助读者理解Lucene的核心功能。这部分可能包括以下几个关键知识点: 1. **Lucene简介**:Lucene作为一个高性能的全文检索库,它的主要功能是...