`

Lucene2

 
阅读更多
private void getLucene()
    {
        File filePath = new File("E:\\xbliucss");
        File indexPath = new File("E:\\xbliucss");
        //创建一个标准解析器
        StandardAnalyzer sAnalyzer = new StandardAnalyzer();
        //给文档加索引
        IndexWriter indexWriter = new IndexWriter(filePath, sAnalyzer, true);
        File[] fileList = filePath.listFiles();
        Long startTime = new Date().getTime();
        //增加Document到索引中
        for (int i = 0; i < fileList.length; i++)
        {
            if (fileList[i].isFile() && fileList[i].getName().endsWith(".txt"))
            {
                System.out.println("File: " + fileList[i].getCanonicalPath()
                        + "正在被索引");
                String temp = fileReaderAll(fileList[i].getCanonicalPath(),
                        "GBK");
                System.out.println(temp);
               
                Document document = new Document();
               
                //保存文件路径
                Field filedPath = new Field("path", fileList[i].getPath(),
                        Field.Store.YES, Field.Index.NO);
               
                //保存文件内容
                Field filedBody = new Field("body", temp, Field.Store.YES,
                        Field.Index.TOKENIZED,
                        Field.TermVector.WITH_POSITIONS_OFFSETS);
               
                document.add(filedPath);
                document.add(filedBody);
                indexWriter.addDocument(document);
            }
        }
        indexWriter.optimize();//对索引进行优化
        indexWriter.close();
        long endTime = new Date().getTime();
        System.out.println("这花费了:" + (endTime - startTime) + "毫秒把文档增加到索引里面去"
                + indexPath.getPath());
    }
    private String fileReaderAll(String fileName, String charset)
    {
        FileInputStream fis = new FileInputStream(fileName);
        InputStreamReader is = new InputStreamReader(fis, charset);
        BufferedReader reader = new BufferedReader(is);
        String line = "";
        String temp = "";
        while ((line = reader.readLine()) != null)
        {
            temp += line;
        }
        reader.close();
        return temp;
    }
    public void queryFile()
    {
        Hits hits = null;
        String queryStr = "中华";
        Query query = null;
        IndexSearcher iSearcher = new IndexSearcher("E:\\xbliucss"); //检索工具,索引存放的目录
        Analyzer analyzer = new StandardAnalyzer();//标准解析器
        QueryParser qParse = new QueryParser("body", analyzer); //查询器,返回一个Query对象
        query = qParse.parse(queryStr);
        if (iSearcher != null)
        {
            hits = iSearcher.search(query);
        }
        Iterator<?> iterator = hits.iterator();
        while (iterator.hasNext())
        {
            //一条记录对应一个Hit对象
            Object next = iterator.next();
            if (next instanceof Hit)
            {
                Hit hit = (Hit)next;
                Document document = hit.getDocument();
                Field field = document.getField("path");//path:对应索引时的标识
                String filePath = field.stringValue();//获取文件路径
                System.out.println("文件路径:" + filePath);
               
                Field field2 = document.getField("body");//body:对应索引时的标识
                String fileBody = field2.stringValue();//获取文件内容
                System.out.println("文件内容:" + fileBody);
            }
        }
        System.out.println("共找到" + hits.length() + "个结果。");
    }
分享到:
评论

相关推荐

    Lucene2实战源码

    《Lucene2实战源码解析》 Lucene2是一款由Apache软件基金会开发的全文搜索引擎库,它是Java语言实现的开源项目,广泛应用于信息检索、数据分析等领域。本篇将基于提供的"Lucene2实战源码"进行深入探讨,帮助读者...

    WebLucene2.zip

    WebLucene2.zip 文件可能是一个包含Lucene库的压缩包,用于在Web环境中实现全文搜索引擎。Lucene是Apache软件基金会的一个开源项目,它提供了一个高性能、可伸缩的信息检索库。这个库允许开发者轻松地在应用程序中...

    《ajax+Lucene构建搜索引擎》源代码 for lucene 2.x

    《Ajax+Lucene构建搜索引擎》源代码是针对Lucene 2.x版本的一个示例项目,旨在教用户如何结合Ajax技术和Lucene搜索引擎库来创建高效的、交互式的搜索功能。Lucene是一个开源全文检索库,由Apache软件基金会开发,它...

    基于LUCENE2_0的源代码搜索引擎架构的实现(论文)

    基于LUCENE2_0的源代码搜索引擎架构的实现(论文)

    Lucene 2 教程

    【Lucene 2 教程】Lucene 是 Apache 软件基金会开发的开源全文搜索引擎库,用 Java 编写,适用于多种操作系统。它提供了一种高效、灵活的方式来创建和管理索引,使得数据能够被快速检索。在 Lucene 中,`Document` ...

    Lucene2实战(中文版)

    LuceneInAction 2nd edition.pdf ) Lucene2实战(中文版)

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

    2. **Lucene API**:详细讲解了Lucene的各个核心组件,如Analyzer(分析器)用于处理文本,Document(文档)用于存储数据,IndexWriter(索引写入器)用于创建和更新索引,以及Searcher(搜索器)用于执行查询。...

    lucene-2.3.0-src

    《深入剖析Lucene 2.3.0源码与API》 Lucene是一个高性能、全文检索库,由Apache软件基金会开发并维护。它为开发者提供了在Java应用中实现全文搜索功能的基本工具。Lucene 2.3.0是该库的一个重要版本,包含了丰富的...

    Lucene实战第二版中英文PDF(带书签)

    2. **文档分析**:Lucene包含了强大的文档分析器,可以将输入的文本分解成有意义的词语,进行分词、去除停用词、词形还原等预处理操作,以提高搜索质量。 3. **索引过程**:索引是Lucene的核心部分,包括文档的读取...

    lucene,lucene教程,lucene讲解

    2.MUST和MUST_NOT:表示查询结果中不能包含MUST_NOT所对应得查询子句的检索结果。 3.MUST_NOT和MUST_NOT:无意义,检索无结果。 4.SHOULD与MUST、SHOULD与MUST_NOT: SHOULD与MUST连用时,无意义,结果为MUST子句...

    lucene3.0 lucene3.0

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

    Lucene实战 PDF

    是一本译本,有Lucene搜索引擎框架的部分作者编写,值得学习!

    lucene学习pdf2

    "lucene学习pdf2" 提供的文档,无疑是对Lucene深入理解的一把钥匙,它涵盖了Lucene的核心概念、操作流程以及高级特性。 首先,Lucene的基础知识是必不可少的。Lucene的核心在于索引和搜索,它将非结构化的文本数据...

    Lucene in Action 2nd Edition

    2. **安装与配置**:详细讲解如何在Java环境中集成Lucene,包括依赖管理和配置设置,以及如何创建一个基本的搜索应用。 3. **文本处理**:探讨如何对输入文本进行预处理,如分词、去除停用词、词干提取等,以提高...

    用来做全文搜索的Lucene.Net库,版本2.3.2

    不知道Lucene.net的搜一下了解后再来下! Lucene 是 Java 世界中常用的索引 API,使用它提供的方法可以为文本资料创建索引,并提供检索。Lucene .NET 是第一个的 .net 移植,也是一个有 .net 风格的版本,使用 .net ...

    Lucene3.5源码jar包

    2. **分词器(Tokenizer)与过滤器(Filter)**:Lucene支持自定义的分词规则,如`StandardTokenizer`和`LowerCaseFilter`。这些在`analysis`包下的源码中可以找到,它们负责将原始文本转换为可搜索的术语。 3. **...

    lucene in action 2ed Edition

    《Lucene in Action 2nd Edition》是一本深入探讨Apache Lucene搜索引擎库的权威书籍,由Manning出版社在2010年发行。这本书详细介绍了如何利用Java编程语言来构建高性能、可扩展的全文检索应用。Lucene是Apache软件...

    lucene-4.7.0全套jar包

    2. **搜索算法**:Lucene实现了布尔、短语、模糊、评分等高级搜索算法,使得用户可以灵活地构造复杂的查询条件。 3. **高性能**:Lucene通过内存缓存、位向量和优化的数据结构来提高搜索速度。同时,它支持多线程...

    Lucene时间区间搜索

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

Global site tag (gtag.js) - Google Analytics