`
Goodtiger
  • 浏览: 106884 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

Lucene2.0简单例子

阅读更多
package gt.test.lucene;

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.IndexWriter;
import org.apache.lucene.queryParser.ParseException;
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.Directory;
import org.apache.lucene.store.RAMDirectory;

public class Test {

 /**
  * @param args
  * @author Goodtiger 
  */
 public static void main(String[] args) {
  try {
   Analyzer analyzer = new StandardAnalyzer();

   //将索引存在内存中
   Directory directory = new RAMDirectory();
   //将索引存在磁盘的话,用下面这句
   //Directory directory = FSDirectory.getDirectory("/tmp/testindex", true);
   IndexWriter iwriter = new IndexWriter(directory, analyzer, true);
   iwriter.setMaxFieldLength(25000);
   Document doc = new Document();
   String text = "This is the text to be indexed.";
   doc.add(new Field("fieldname", text, Field.Store.YES,
       Field.Index.TOKENIZED));
   iwriter.addDocument(doc);
   iwriter.close();
   
   
   IndexSearcher isearcher = new IndexSearcher(directory);
   // Parse a simple query that searches for "text":
   QueryParser parser = new QueryParser("fieldname",analyzer);
   Query query = parser.parse("text");
   
   Hits hits = isearcher.search(query);
   if(hits.length() == 1)
   {
    System.out.println("搜索\"text\"");
    Document d = hits.doc(0);
    System.out.println(d.get("fieldname"));
   }else
   {
    System.out.println("没有搜索到结果");
   }
   // 遍历搜索结果:
   for (int i = 0; i < hits.length(); i++) {
     Document hitDoc = hits.doc(i);
     System.out.println(hitDoc.get("fieldname"));
   }
   isearcher.close();
   directory.close();
  } catch (IOException e) {
   e.printStackTrace();
  } catch (ParseException e) {
   e.printStackTrace();
  } 

 }

}
分享到:
评论

相关推荐

    开发自己的搜索引擎《lucene2.0+heritrix》一书对应的源码资料

    在《开发自己的搜索引擎》一书中,通过`ch2-lucene入门小例子`,读者可以了解到如何使用Lucene 2.0创建简单的搜索引擎,例如建立索引、执行搜索等基本操作。而`myReserch-可用的网络搜索引擎`可能包含一个完整的搜索...

    【大搜集:lucene学习资料】---<下载不扣分,回帖加1分,欢迎下载,童叟无欺>

    基于Java的全文索引引擎.doc lucene测试代码.txt lucene为数据库搜索建立增量索引.txt lucene数据库索引.txt 新闻系统全文检索的思绪.txt ... 关于lucene2.0的创建、检索和删除功能的完整实现.doc weblucene.txt

    Lucene简单实例记录

    在Lucene 2.0及更高版本中,废弃了一些旧版本中的方法,如Field类的构造函数和一些静态方法。这要求开发者在使用时必须注意版本兼容性问题,确保使用的API与所安装的Lucene版本匹配。 ### Lucene的入门实例 #### ...

    Lucene 2 教程

    以下是一个简单的 Lucene 2.0 创建索引的例子: 首先,你需要在 Windows 系统的 C 盘创建一个名为 "s" 的文件夹,并放入几个文本文件。在这个示例中,我们创建了 "1.txt", "2.txt", "3.txt" 文件。每个文件的内容...

    lucene.jar.

    Apache License 2.0是Lucene采用的许可协议,它允许商业使用、修改和再分发,但要求保留原始的版权和许可声明,鼓励开源社区的协作和创新。 Apache License 2.0的特点在于其宽松性和互操作性,它不强制要求对修改后...

    教你如何做lucene.net

    Lucene.Net 最初是一个开源项目,但在某个版本之后(如2.0)转为商业化,提供免费的 DLL 版本以及需要购买许可的源代码版本。 **1. Lucene.Net 的核心功能** Lucene.Net 主要用于创建和管理文本数据的索引,以便...

    php+elastic2.0

    Elasticsearch是一款开源的分布式搜索引擎,基于Lucene库构建,具有实时、可扩展、分布式、RESTful接口等特性。它支持全文搜索、结构化搜索以及分析,广泛应用于日志分析、监控、数据可视化等多个领域。 **PHP7与...

    tomcat从windows向linux转移部署.pdf

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

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

    EJB中JNDI的使用源码例子 1个目标文件,JNDI的使用例子,有源代码,可以下载参考,JNDI的使用,初始化Context,它是连接JNDI树的起始点,查找你要的对象,打印找到的对象,关闭Context…… ftp文件传输 2个目标文件...

    querydsl-support-api:功能接口,使使用Querydsl进行数据库访问更加容易

    Querydsl允许开发者使用静态类型的API来构建SQL、JPA、JDO、Lucene等查询。这种方式使得查询的编写和维护变得直观且易于理解,因为它们是用Java代码编写的,而不是字符串拼接。通过Querydsl,我们可以避免SQL注入...

    opencms资料

    - **Web 2.0时代**:随着Web 2.0概念的普及,CMS开始支持动态内容和用户交互。 - **现代CMS**:当前的CMS系统不仅能够管理内容,还提供了SEO优化、社交媒体集成等多种高级功能。 ##### 1.4 CMS的基本原理 CMS的...

Global site tag (gtag.js) - Google Analytics