`

一个例子学懂lucene--Helloworld

阅读更多

lucene的一个Helloworld例子,麻雀虽小,五脏俱全。

所需jar包:lucene-analyzers-3.6.2.jar、lucene-core-3.6.2.jar、junit-4.4.jar

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.index.CorruptIndexException;
import org.apache.lucene.index.IndexWriter;
import org.apache.lucene.index.IndexWriter.MaxFieldLength;
import org.apache.lucene.queryParser.MultiFieldQueryParser;
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.TopDocs;
import org.apache.lucene.store.Directory;
import org.apache.lucene.store.LockObtainFailedException;
import org.apache.lucene.store.RAMDirectory;
import org.apache.lucene.util.Version;
import org.junit.Test;

public class HelloWorld {
	@SuppressWarnings("deprecation")
	@Test
	public  void luceneTest(){
		Directory directory  = new RAMDirectory();
		Analyzer analyzer = new StandardAnalyzer(Version.LUCENE_36);
		try {
				 IndexWriter indexWriter = new IndexWriter(directory, analyzer, true, MaxFieldLength.LIMITED);
				 Document document = new Document();
				 Document document2 = new Document();
				 String text  = "我是中国人,我爱中国.";
				 String text2  = "我是中国人,我爱中国.";
				 document.add(new Field("fieldname", text, Field.Store.YES, Field.Index.ANALYZED));
				 document2.add(new Field("fieldname", text2, Field.Store.YES, Field.Index.ANALYZED));
				 indexWriter.addDocument(document);
				 indexWriter.addDocument(document2);
				 indexWriter.optimize();
				 indexWriter.close();
				 // Now search the index;
				 IndexSearcher isearcher = new IndexSearcher(directory);
				 // Parse a simple query that searches for "中国人"
				  String [] queryFileds = {"fieldname"};   
				 QueryParser parser = new MultiFieldQueryParser(Version.LUCENE_36, queryFileds, analyzer);
				 Query query = parser.parse("中国人");
				 TopDocs result =  isearcher.search(query, 1000);
				 System.out.println("检索到"+result.totalHits+"条符合条件的数据.");
				 isearcher.close();
				 directory.close();
		} catch (CorruptIndexException e) {
			e.printStackTrace();
		} catch (LockObtainFailedException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		} catch (ParseException e) {
			e.printStackTrace();
		}
	}
}

 

 

分享到:
评论

相关推荐

    Lucene-Demo.rar Lucene分词的demo

    例如,一个英文分词器可能会将句子"Hello World"拆分为"Hello"和"World"两个术语。 在导入这个Demo项目后,开发者可以查看和学习如何实例化分词器、创建索引以及执行搜索。分词器的配置是灵活的,可以根据需求选择...

    Lucene常用的Demo

    本篇文章将深入探讨Lucene的几个常见示例,包括`LuceneDemo`、`LuceneZJ`、`Lucene_HelloWorld`,帮助初学者快速理解Lucene的基本操作。 1. **Lucene_HelloWorld** 这个示例是入门Lucene的首选,它展示了如何创建...

    Annotated Lucene 中文版 Lucene源码剖析

    - 通过一个简单的例子展示如何使用`IndexWriter`来创建一个新的索引。 - **索引创建类IndexWriter**: - `org.apache.lucene.index.IndexWriter`是用于创建和修改索引的核心类,它提供了高级API来添加新文档、...

    lucene学习,lucene对txt,pdf,html格式的学习

    在给定的代码中,`Index`方法创建了一个包含100条记录的索引,每条记录的`name`字段从`name1`到`name100`,`value`字段都为`"Hello, World!"`。然后,`Search`方法使用`QueryParser`解析查询`name*`,并打印出所有...

    lucene(HelloWord)

    本文将通过一个简单的“Hello World”示例,帮助你初步了解如何使用Lucene进行文本检索。 首先,我们需要理解Lucene的基本工作流程。Lucene的索引过程主要包括文档的分析、索引构建和存储。分析阶段,Lucene会将...

    Java_凯文·坦斯例子的放大版.zip

    "hello-lucene_master.zip"是压缩包中的一个子文件,暗示了我们可能将要探讨的是关于Apache Lucene的教程。Lucene是一个强大的开源全文搜索库,广泛用于构建高效的搜索引擎。它提供了一个灵活且高性能的索引和搜索...

    tomcat从windows向linux转移部署.pdf

    例如,`java -classpath lucene-core-2.0.jar:commons-lang.jar:./bin helloworld`。确保所有依赖的JAR文件和当前目录(`./bin`)都被正确地包含在类路径中,以便Java虚拟机能够找到并加载相应的类。 2. **Tomcat...

    ELK-guide-cn.pdf

    - Hello World:通过一个简单的例子展示如何使用Logstash。 - 配置语法:介绍Logstash配置文件的语法和结构。 - Plugin的安装:介绍如何安装和管理Logstash的插件。 插件配置: - Input配置:Logstash可以从多种...

    Apache Solr 架构分析内部设计篇PDF

    在详细内容中,我们可以看到一个“HelloWorld”插件示例,这是一个扩展了RequestHandlerBase的简单插件,展示了如何编写自定义的Solr请求处理器。在这个示例中,处理器会处理包含name和age参数的查询请求,并在响应...

    JAVA上百实例源码以及开源项目源代码

    Message-Driven Bean EJB实例源代码 2个目标文件 摘要:Java源码,初学实例,EJB实例 Message-Driven Bean EJB实例源代码,演示一个接收购物订单的消息驱动Bean,处理这个订单同时通过e-mail的形式 //给客户发一个感谢...

Global site tag (gtag.js) - Google Analytics