`
neverforget
  • 浏览: 38888 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

请您先登录,才能继续操作

第一个Lucene 3.6 (3.X) 入门实例

 
阅读更多
运行lucene所需要的JAR包 
lucene-core-3.6.0.jar(核心包) 
lucene-analyzers-3.6.0.jar(分词器) 
lucene-highlighter-3.6.0.jar(高亮) 
lucene-memory-3.6.0.jar(高亮) 
 
public class HelloWord {  
    public static void createIndexFile() {  
        IndexWriter indexWriter=null;  
        try {  
            // 需要的分词器  
            Analyzer analyzer = new StandardAnalyzer(Version.LUCENE_36);  
            // 创建的是哪个版本的IndexWriterConfig  
            IndexWriterConfig indexWriterConfig = new IndexWriterConfig(  
                    Version.LUCENE_36, analyzer);  
            // 创建系统文件----- ./ 当前路径下的  
            Directory directory = new SimpleFSDirectory(new File("./indexDir/"));  
            indexWriter = new IndexWriter(directory,indexWriterConfig);   
            //获取实体对象  
            Article article=new Article(11,"最XX的城市","XX");    
            //indexWriter添加索引  
            Document doc=new Document();  
            //文本中添加内容            标题      内容  
            /*doc.add(new Field("title","中国的首都在哪里",Store.YES,Index.ANALYZED));  
            doc.add(new Field("content","中国的首都在北京",Store.YES,Index.ANALYZED));*/      
            doc.add(new Field("id",article.getId().toString(),Store.YES,Index.ANALYZED));  
            doc.add(new Field("title",article.getTitle().toString(),Store.YES,Index.ANALYZED));  
            doc.add(new Field("content",article.getContent().toString(),Store.YES,Index.ANALYZED));   
            //添加到索引中去  
            indexWriter.addDocument(doc);     
        } catch (IOException e) {  
            // TODO Auto-generated catch block  
            e.printStackTrace();  
        }finally{  
            if(indexWriter!=null){  
                try {  
                    indexWriter.close();  
                }  catch (IOException e) {  
                    // TODO Auto-generated catch block  
                    e.printStackTrace();  
                }  
            }  
        }  
    }  
    //如果查询是需要用到解析器,那解析器必须和创建时的解析器相同  
    public static void searchIndexFileResult() throws IOException {   
        List<Article> articles=new ArrayList<Article>();      
        //得到索引的目录  
        Directory directory = new SimpleFSDirectory(new File("./indexDir/"));  
        //根据目录打开一个indexReader  
        IndexReader indexReader=IndexReader.open(directory);  
        //System.out.println(indexReader.maxDoc());   
        //获取最小值的document对象  
        //Document doc=indexReader.document(0);  
        //获取最大值的document对象  
        //Document doc=indexReader.document(indexReader.maxDoc()-1);  
        //document对象的get(字段名称)方法获取字段的值  
        /*System.out.println(doc.get("id"));  
        System.out.println(doc.get("title"));  
        System.out.println(doc.get("content"));*/     
        int n=indexReader.maxDoc();  
        for(int i=0;i<n;i++){  
            Document doc=indexReader.document(i);  
            Article article=new Article();  
            if(doc.get("id")==null){  
                System.out.println("id为空");  
            }else{  
                article.setId(Integer.parseInt(doc.get("id")));  
                article.setTitle(doc.get("title"));  
                article.setContent(doc.get("content"));  
                articles.add(article);  
            }  
        }  
        for(Article article:articles){  
            System.out.println(article.toString());  
        }     
    }  
    public static void main(String[] args) throws IOException {  
        // 建立要索引的文件  
    //  createIndexFile();  
        // 从索引文件中查询数据  
        searchIndexFileResult();  
        // 获得结果,然后交由相关应用程序处理  
    }  
} 
分享到:
评论
6 楼 dustar1992 2012-12-01  
           [/i][i][/i][i][i][/i][/u][u][/u][u][/u][u][/u][u][/u][u][/u][u][u][/u]                      
[/url][url][url][/url][/b][b][/b][b][/b][b][/b][b]
5 楼 760865548 2012-11-28  
analyzers  
4 楼 fanguozi 2012-09-18  
为什么下载的是歌曲呢?还以为是代码呢
3 楼 fs_cyb 2012-09-07  
  非常好。。。
2 楼 chendexin2012 2012-08-23  
     
1 楼 iloveyou628 2012-08-09  
              [/color][color=blue]

相关推荐

    lucene3.6.jar

    这里的“lucene3.6.jar”是一个包含了Lucene 3.6版本核心功能的Java类库,它是实现全文检索的基础。 Lucene的核心特性包括索引构建、查询解析、搜索执行以及结果排序等。索引构建允许开发者将大量文本数据转换为...

    lucene3.6 搜索例子

    1. 文档创建:在Lucene中,所有的数据都被转化为文档对象,每个文档可以包含多个字段,如标题、正文等。每个字段都有自己的特性,比如是否被索引、是否可搜索、是否存储等。 2. 分析器:在将文本数据添加到索引之前...

    lucene3.6入门实例教程

    《Lucene 3.6 入门实例教程》是一份专为初学者设计的指南,旨在帮助用户快速掌握Apache Lucene 3.6版本的基本概念和应用。Lucene是一个高性能、全文检索库,广泛用于构建搜索功能强大的应用程序。这份教程通过完整的...

    Lucene 3.6 学习笔记

    ### 第一章 Lucene 基础 #### 1.1 索引部分的核心类 - `Directory`: 用于存储索引数据的抽象接口,例如FSDirectory(文件系统目录)和RAMDirectory(内存目录)。 - `IndexWriter`: 负责创建、修改和删除索引的主要...

    lucene 3.6 全文检索

    1. 初始化Directory,如使用FSDirectory打开一个本地文件夹作为索引存储位置。 2. 创建Analyzer,如使用StandardAnalyzer处理文本。 3. 创建IndexWriter实例并设置相关参数。 4. 创建Document对象,添加Field,然后...

    lucene3.6的入门案例

    在这个入门案例中,我们将深入理解如何使用 Lucene 3.6 版本来构建基本的文本搜索引擎。 首先,我们需要了解 Lucene 的核心概念: 1. **索引(Indexing)**:Lucene 的工作始于创建索引,将文档内容转化为可搜索的...

    lucene3.6实例(索引和查询)

    在网上找了实例,但是发现不能使用,只能简历索引。...lucene3.6版本,能够建立索引,能搜索。inderwriter,indexsearch. 其中包C下的helloword实例能用,其余的全是网上不能用的。直接下载 可以运行

    IKAnalyzer修复源码,Lucene3.6 Jar及使用示例

    1. 下载并导入修复后的IKAnalyzer源码到项目中。 2. 配置IKAnalyzer,指定自定义的停用词文件路径。 3. 创建Analyzer实例,使用修复后的IKAnalyzer进行分词。 4. 对待处理的中文文本进行分词操作。 5. 检查分词结果...

    lucene 3.6

    Lucene 是一个开源的全文检索库,由 Apache 软件基金会开发,广泛应用于各种搜索引擎的构建。在 Lucene 3.6 版本中,它提供了强大的文本搜索功能,适用于Java开发人员。这个版本相对稳定,对于初学者来说是一个很好...

    lucene3.6 模仿百度自动补全

    lucene3.6 模仿百度自动补全(lucene3.6 模仿百度自动补全(lucene3.6 模仿百度自动补全(lucene3.6 模仿百度自动补全(lucene3.6 模仿百度自动补全(lucene3.6 模仿百度自动补全(lucene3.6 模仿百度自动补全

    lucene3.6工程原文件

    1. **Term 查询**:最基础的查询类型,通过指定一个词来查找包含这个词的文档。 2. **Boolean 查询**:结合多个 Term 查询,使用 AND、OR、NOT 等布尔运算符来构造复杂的查询表达式。 3. **Phrase 查询**:用于...

    lucene-highlighter.jar

    lucene-highlighter.jar lucene-highlighter.jar

    IKAnalyzer 支持高版本最新Lucene 5.x、6.x、7.x

    3. **Lucene 5.x、6.x、7.x的关键特性**: - Lucene 5.x引入了新的DocValues格式,提高了索引的压缩率和查询速度。同时,支持更强大的多字段搜索和聚合功能。 - Lucene 6.x进一步优化了内存使用,增强了查询性能,...

    基于lucene3.6平台搜索工具相关包及使用说明

    1. 压缩索引:使用Lucene的压缩选项,可以减少索引占用的磁盘空间。 2. 分片与分布式搜索:在大型系统中,通过分片技术将索引分散到多台机器上,提升搜索性能。 3. 缓存优化:合理利用查询结果缓存和字段数据缓存...

    lucene-analysis.jar

    文本分析是Lucene处理文本数据的第一步,它涉及到文本的分词、去除停用词、词形还原等一系列操作,目的是将复杂的自然语言转化为搜索引擎可以理解和处理的形式。 在"lucene-analysis.jar"中,我们可以找到多种预定...

    apache-lucene-analyzers.jar

    Apache Lucene是一个高性能、全文本搜索库,广泛用于构建搜索引擎应用程序。这个名为"apache-lucene-analyzers.jar"的文件是Lucene项目的一部分,主要包含了各种分析器(analyzers)的实现,它们在处理文本数据时起...

    lucene-3.6.0.zip

    1. 文档(Document):代表要索引的信息,可以包含多个字段(Field)。 2. 字段(Field):文档中的具体信息,如标题、内容、作者等,每个字段都有自己的属性,如是否可搜索、是否存储等。 3. 索引(Index):将文档...

    基于Lucene3.6进行全文检索的小案例

    1. **创建索引**:首先,我们需要创建一个索引writer,然后遍历要索引的文档,将每个文档的字段添加到writer中。索引完成后,记得关闭writer。 2. **分析文本**:在添加文档时,使用合适的分析器处理文本,确保每个...

    第一个lucene的简单实例....

    标题 "第一个lucene的简单实例" 提到的是关于Apache Lucene的初步应用,这是一个全文搜索引擎库,常用于Java开发中。Lucene提供了高效的文本搜索功能,使得开发者能够快速地在大量数据中查找相关信息。 描述中的 ...

Global site tag (gtag.js) - Google Analytics