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

Lucene practice

    博客分类:
  • Java
阅读更多

1.simply practice the lucene api for search document and data, post code first

lucene version :2.2.0

set up the index of files
java 代码
  1. package com.aaron.lucene;   
  2.   
  3. import java.io.File;   
  4. import java.io.FileReader;   
  5. import java.io.Reader;   
  6. import java.util.Date;   
  7. import org.apache.lucene.analysis.Analyzer;   
  8. import org.apache.lucene.analysis.standard.StandardAnalyzer;   
  9. import org.apache.lucene.document.Document;   
  10. import org.apache.lucene.document.Field;   
  11. import org.apache.lucene.index.IndexWriter;   
  12.   
  13. /**  
  14.  * This class demonstrate the process of creating index with Lucene for text  
  15.  * files  
  16.  */  
  17. public class TxtFileIndexer {   
  18.     public static void main(String[] args) throws Exception {   
  19.         // indexDir is the directory that hosts Lucene's index files   
  20.         File indexDir = new File("C:/bin/lucence/Index");   
  21.         // dataDir is the directory that hosts the text files that to be indexed   
  22.         File dataDir = new File("C:/bin/lucence/Data");   
  23.         Analyzer luceneAnalyzer = new StandardAnalyzer();   
  24.         File[] dataFiles = dataDir.listFiles();   
  25.         IndexWriter indexWriter = new IndexWriter(indexDir, luceneAnalyzer,   
  26.                 true);   
  27.         long startTime = new Date().getTime();   
  28.         for (int i = 0; i < dataFiles.length; i++) {   
  29.             if (dataFiles[i].isFile()   
  30.                     && dataFiles[i].getName().endsWith(".txt")) {   
  31.                 System.out.println("Indexing file "  
  32.                         + dataFiles[i].getCanonicalPath());   
  33.                 Document document = new Document();   
  34.                 Reader txtReader = new FileReader(dataFiles[i]);   
  35.   
  36.                 document.add(new Field("path", dataFiles[i].getPath(),   
  37.                         Field.Store.YES, Field.Index.UN_TOKENIZED));   
  38.                 document.add(new Field("contents", txtReader));   
  39.                 indexWriter.addDocument(document);   
  40.             }   
  41.         }   
  42.         indexWriter.optimize();   
  43.         indexWriter.close();   
  44.         long endTime = new Date().getTime();   
  45.   
  46.         System.out.println("It takes " + (endTime - startTime)   
  47.                 + " milliseconds to create index for the files in directory "  
  48.                 + dataDir.getPath());   
  49.     }   
  50. }   
Search key word
java 代码
  1. package com.aaron.lucene;   
  2.   
  3. import java.io.File;   
  4. import org.apache.lucene.document.Document;   
  5. import org.apache.lucene.index.Term;   
  6. import org.apache.lucene.search.Hits;   
  7. import org.apache.lucene.search.IndexSearcher;   
  8. import org.apache.lucene.search.TermQuery;   
  9. import org.apache.lucene.store.FSDirectory;   
  10.   
  11. /**  
  12.  * This class is used to demonstrate the   
  13.  * process of searching on an existing   
  14.  * Lucene index  
  15.  *  
  16.  */  
  17. public class TextFileSearcher {   
  18.     public static void main(String[] args) throws Exception {   
  19.         String queryStr = "lucene";   
  20.         //This is the directory that hosts the Lucene index   
  21.         File indexDir = new File("C:/bin/lucence/Index");   
  22.         FSDirectory directory = FSDirectory.getDirectory(indexDir);   
  23.         IndexSearcher searcher = new IndexSearcher(directory);   
  24.         if (!indexDir.exists()) {   
  25.             System.out.println("The Lucene index is not exist");   
  26.             return;   
  27.         }   
  28.         Term term = new Term("contents", queryStr.toLowerCase());   
  29.         TermQuery luceneQuery = new TermQuery(term);   
  30.         Hits hits = searcher.search(luceneQuery);   
  31.         for (int i = 0; i < hits.length(); i++) {   
  32.             Document document = hits.doc(i);   
  33.             System.out.println("File: " + document.get("path"));   
  34.         }   
  35.     }   
  36. }   
分享到:
评论

相关推荐

    lucene,lucene教程,lucene讲解

    lucene,lucene教程,lucene讲解。 为了对文档进行索引,Lucene 提供了五个基础的类 public class IndexWriter org.apache.lucene.index.IndexWriter public abstract class Directory org.apache.lucene.store....

    lucene3.0 lucene3.0

    lucene3.0 lucene3.0 lucene3.0 lucene3.0 lucene3.0

    lucene-4.7.0全套jar包

    【Lucene 4.7.0 全套JAR包详解】 Lucene是一个开源全文搜索引擎库,由Apache软件基金会开发并维护。它提供了一个高级、灵活的文本搜索API,允许开发者轻松地在应用程序中实现复杂的搜索功能。这次提供的“lucene-...

    Lucene3.5源码jar包

    本压缩包包含的是Lucene 3.5.0版本的全部源码,对于想要深入理解Lucene工作原理、进行二次开发或者进行搜索引擎相关研究的开发者来说,是一份非常宝贵的学习资源。 Lucene 3.5.0是Lucene的一个重要版本,它在3.x...

    lucene in action英文版 lucene 3.30包

    《Lucene in Action》是关于Apache Lucene的权威指南,这本书深入浅出地介绍了全文搜索引擎的构建和优化。Lucene是一个高性能、全文本搜索库,它允许开发人员在应用程序中轻松实现复杂的搜索功能。这本书主要面向...

    Lucene时间区间搜索

    Lucene是一款强大的全文搜索引擎库,广泛应用于各种数据检索场景。在C#环境下,利用Lucene进行时间区间搜索是提高数据检索效率和精确度的重要手段。本篇将深入探讨如何在C#中实现Lucene的时间区间查询匹配,以及涉及...

    Annotated Lucene 中文版 Lucene源码剖析

    《Annotated Lucene 中文版 Lucene源码剖析》是一本深入探讨Apache Lucene的书籍,专注于源码解析,帮助读者理解这个强大的全文搜索引擎库的工作原理。Lucene是一款开源的Java库,它提供了高效的文本搜索功能,被...

    Lucene简介.介绍

    【Lucene 简介】 Lucene 是一个强大的开源全文搜索库,由 Java 编写,主要用于为应用程序添加全文检索功能。它不是一个完整的全文搜索引擎应用,而是一个工具包,允许开发者将其集成到自己的软件中,以实现高效、...

    Lucene示例 BM25相似度计算

    在IT领域,搜索引擎技术是至关重要的,而Lucene作为一个开源全文搜索引擎库,广泛应用于各种文本检索系统中。本文将深入探讨Lucene示例中的BM25相似度计算,旨在帮助初学者理解如何利用Lucene 4.7.1版本构建索引、...

    lucene 2.0 api以及lucene 3.0 api

    **Lucene 2.0 API 和 Lucene 3.0 API 深度解析** Lucene 是一个由 Apache 软件基金会开发的全文搜索引擎库,它为开发者提供了在 Java 应用程序中实现高性能、可扩展的全文搜索功能的能力。Lucene 的 API 设计得相当...

    计算机专业外文翻译(lucene相关)

    "计算机专业外文翻译(lucene相关)" 本文翻译了论文"Scale-up x Scale-out: A Case Study using Nutch/Lucene",介绍了计算机专业领域中关于Lucene相关的知识点。 Scale-up vs Scale-out 论文中讨论了两个相对...

    Lucene的原理完整版pdf

    **Lucene原理详解** Lucene是一个高性能、全文检索库,由Apache软件基金会开发并维护,是Java编程语言中广泛使用的搜索引擎库。它提供了一个简单但功能强大的API,用于索引和搜索文本数据,使得开发者可以轻松地在...

    lucene所有的jar包

    《全面解析Lucene jar包:从基础到应用》 在信息技术高速发展的今天,搜索引擎已经成为我们获取信息不可或缺的工具。在Java领域,Lucene作为一个强大的全文搜索引擎库,深受开发者喜爱。本文将详细介绍“lucene所有...

    Lucene资料大全(包括Lucene_in_Action书等)

    标题"Lucene资料大全(包括Lucene_in_Action书等)"表明这是一个包含全面Lucene学习资源的集合,其中最显著的是《Lucene_in_Action》这本书。这是一本广泛认可的关于Apache Lucene的权威指南,通常被简称为LIA,它深入...

    lucene in action 2nd edition, lucene in action 第二版 PDF

    《Lucene in Action 第二版》是一本深入探讨Apache Lucene全文检索库的专业书籍,它在Java开发领域具有很高的权威性。这本书详细介绍了如何利用Lucene进行高效的文本搜索和索引构建,是Java开发者和信息检索爱好者的...

    lucene.NET 中文分词

    **Lucene.NET 中文分词技术详解** Lucene.NET 是一个高性能、全文检索库,它是Apache Lucene项目在.NET平台上的实现。作为一个开源的搜索引擎框架,Lucene.NET为开发者提供了强大的文本搜索功能。而在处理中文文档...

    Lucene与关系型数据库对比

    《Lucene与关系型数据库对比:深度解析与应用探索》 在信息爆炸的时代,数据管理和检索成为了企业乃至个人日常工作中不可或缺的部分。随着技术的发展,不同的数据处理方式应运而生,其中Lucene与关系型数据库作为两...

    lucene-core-7.7.0-API文档-中文版.zip

    赠送jar包:lucene-core-7.7.0.jar; 赠送原API文档:lucene-core-7.7.0-javadoc.jar; 赠送源代码:lucene-core-7.7.0-sources.jar; 赠送Maven依赖信息文件:lucene-core-7.7.0.pom; 包含翻译后的API文档:lucene...

    Lucene 5 主要jar包

    Apache Lucene是一个开源全文搜索引擎库,它为Java开发者提供了强大的文本搜索功能。在这个"Lucene 5 主要jar包"中,我们找到了一系列与Lucene 5.0.0相关的jar文件,这些文件是构建和运行基于Lucene的搜索应用程序的...

    经典的lucene实例代码及详细解析以及lucene结构流程介绍

    经典的Lucene实例代码及详细解析以及Lucene结构流程介绍 Lucene是一个功能强大且灵活的开源搜索引擎库,它提供了一个简单易用的API,允许开发者快速构建搜索应用程序。下面将对Lucene的实例代码和结构流程进行详细...

Global site tag (gtag.js) - Google Analytics