/**
* StandardAnalyzer解析器
* 1.按空格分词
* 2.所有大写字母转换成小写字母
* 3.去除无用的单词(is,the,are)
*/
public void getLucene1()
{
//创建一个标准分析器(StandardAnalyzer),用于分析搜索引擎遇到各种脚本
Analyzer analyzer = new StandardAnalyzer();
//测试字符串
StringReader sr = new StringReader("come Lucene in the Name"); //$NON-NLS-1$
//生成TokenStream对象
TokenStream tokenStream = analyzer.tokenStream("name", sr); //$NON-NLS-1$
try
{
int i = 0;
Token next = tokenStream.next();
while (next != null)
{
i++;
System.out.println("第" + i + "行:" + next.termText());
next = tokenStream.next();
}
}
catch (IOException e)
{
e.printStackTrace();
}
}
/**
* 建立索引,进行搜索
*/
public void getLucene2()
{
//进行索引的单元,将文件转化成Document对象进行索引
Document doc1 = new Document();
doc1.add(new Field("name", "lighter lighter lighter javaeye com",
Field.Store.YES, Field.Index.TOKENIZED));
Document doc2 = new Document();
doc2.add(new Field("name2", "lighter blog", Field.Store.YES,
Field.Index.TOKENIZED));
try
{
//在文档中加入索引
IndexWriter indexWriter = new IndexWriter(
FSDirectory.getDirectory("E:\\", true),
new StandardAnalyzer(), true);
indexWriter.setMaxFieldLength(3);
indexWriter.addDocument(doc1);
indexWriter.setMaxFieldLength(3);
indexWriter.addDocument(doc2);
indexWriter.close();
query("lighter");
query("javaeye");
}
catch (IOException e)
{
e.printStackTrace();
}
}
public void query(String str)
{
IndexSearcher indexSearche = new IndexSearcher(path);
QueryParser queryParser = new QueryParser("name",
new StandardAnalyzer());
Query query = queryParser.parse(str);
Hits hits = indexSearche.search(query);
System.out.println("查找\"" + str + "\"共" + hits.length() + "结果");
}
分享到:
相关推荐
1. 构建文本库:收集并存储所有待检索的信息。 2. 建立索引:对文本库中的信息进行索引,以提高搜索速度。 3. 搜索:用户输入查询,系统通过索引进行查找。 4. 结果处理:对搜索结果进行过滤和排序,返回给用户最...
1. **核心概念**:Lucene主要涉及的概念有文档(Document)、字段(Field)、索引(Index)、查询(Query)和搜索(Search)。文档是信息的基本单元,字段是文档的组成部分,索引是预处理后的数据结构,用于快速查找...
《Lucene中文分词——庖丁解牛》 在自然语言处理领域,中文分词是基础且关键的一环。在Java开发中,Apache Lucene是一个强大的全文搜索引擎库,但默认并不支持中文,这就需要借助第三方分词工具。本文将深入探讨...
1.MUST和MUST:取得连个查询子句的交集。 2.MUST和MUST_NOT:表示查询结果中不能包含MUST_NOT所对应得查询子句的检索结果。 3.MUST_NOT和MUST_NOT:无意义,检索无结果。 4.SHOULD与MUST、SHOULD与MUST_NOT: ...
lucene3.0 lucene3.0 lucene3.0 lucene3.0 lucene3.0
1. Lucene:Apache Lucene是一个高性能、全文检索引擎的Java库,它提供了完整的搜索功能,包括索引、查询、排序等。开发者可以利用Lucene构建自己的搜索引擎,或者将其嵌入到现有的应用程序中。 2. MMSEG4J:MMSEG4...
1. **Meet Lucene(认识Lucene)** - **章节概述**:本章主要介绍Lucene的基本概念、特点及其在搜索引擎领域的地位。读者将了解到Lucene的历史背景和发展现状。 - **知识点详解**: - **Lucene概述**:Lucene是一...
1. **索引结构**:Lucene的核心在于其高效的倒排索引结构。在源码中,你可以看到`IndexWriter`类如何处理文档的添加、删除和更新,以及`SegmentMerger`如何合并多个段以优化索引。 2. **分词器(Tokenizer)与过滤...
var startDate = new DateTime(2020, 1, 1); var endDate = new DateTime(2020, 12, 31); var startDateAsBytes = DateTools.DateToString(startDate, DateTools.Resolution.SECOND).getBytes(Encoding.UTF8); var ...
1. **分词与索引**:Lucene使用高效的分词器将文档内容分解成独立的词汇项(tokens),然后建立倒排索引。倒排索引是一种数据结构,它将每个词汇项映射到包含该词汇项的文档列表,极大地加速了搜索过程。 2. **搜索...
在IT领域,搜索引擎技术是至关重要的,而Lucene作为一个开源全文搜索引擎库,广泛应用于各种文本检索系统中。本文将深入探讨Lucene示例中的BM25相似度计算,旨在帮助初学者理解如何利用Lucene 4.7.1版本构建索引、...
1. **Lucene基础** Lucene是基于Java的开源搜索库,它的核心功能包括索引和搜索文本。索引过程将文本数据转换为可搜索的结构,搜索过程则根据用户输入的查询快速找到相关的文档。Lucene支持多种搜索类型,如布尔...
1. **索引**:Lucene首先对文本进行索引,将文本内容转换为一系列可搜索的结构。索引过程包括分词(Tokenization)、词干提取(Stemming)、停用词处理(Stop Word Removal)等步骤。 2. **文档(Document)**:在...
《Annotated Lucene 中文版 Lucene源码剖析》是一本深入探讨Apache Lucene的书籍,专注于源码解析,帮助读者理解这个强大的全文搜索引擎库的工作原理。Lucene是一款开源的Java库,它提供了高效的文本搜索功能,被...
1. **索引构建**: Lucene 2.0 提供了 `IndexWriter` 类,用于创建和更新索引。开发者可以使用 `Document` 类来封装待索引的数据,然后通过 `addDocument()` 方法添加到索引中。 2. **查询构造**: 通过 `QueryParser...
【Lucene 简介】 Lucene 是一个强大的开源全文搜索库,由 Java 编写,主要用于为应用程序添加全文检索功能。它不是一个完整的全文搜索引擎应用,而是一个工具包,允许开发者将其集成到自己的软件中,以实现高效、...
1. **core jar包**:这是Lucene的基础模块,包含索引、搜索、分析等核心功能。在4.9.0版本中,主要的jar包有`lucene-core-4.9.0.jar`,它是所有其他模块的基础。 2. **analyzers jar包**:用于文本分析,将输入的...
"计算机专业外文翻译(lucene相关)" 本文翻译了论文"Scale-up x Scale-out: A Case Study using Nutch/Lucene",介绍了计算机专业领域中关于Lucene相关的知识点。 Scale-up vs Scale-out 论文中讨论了两个相对...
**Lucene.NET 中文分词技术详解** Lucene.NET 是一个高性能、全文检索库,它是Apache Lucene项目在.NET平台上的实现。作为一个开源的搜索引擎框架,Lucene.NET为开发者提供了强大的文本搜索功能。而在处理中文文档...