`

Lucene1

 
阅读更多
/**
     * StandardAnalyzer解析器
     * 1.按空格分词
     * 2.所有大写字母转换成小写字母
     * 3.去除无用的单词(is,the,are)
     */
    public void getLucene1()
    {
        //创建一个标准分析器(StandardAnalyzer),用于分析搜索引擎遇到各种脚本
        Analyzer analyzer = new StandardAnalyzer();
        //测试字符串
        StringReader sr = new StringReader("come Lucene in the Name"); //$NON-NLS-1$
        //生成TokenStream对象
        TokenStream tokenStream = analyzer.tokenStream("name", sr); //$NON-NLS-1$
        try
        {
            int i = 0;
            Token next = tokenStream.next();
            while (next != null)
            {
                i++;
                System.out.println("第" + i + "行:" + next.termText());
                next = tokenStream.next();
            }
        }
        catch (IOException e)
        {
            e.printStackTrace();
        }
    }
   
    /**
     * 建立索引,进行搜索
     */
    public void getLucene2()
    {
        //进行索引的单元,将文件转化成Document对象进行索引
        Document doc1 = new Document();
        doc1.add(new Field("name", "lighter lighter lighter javaeye com",
                Field.Store.YES, Field.Index.TOKENIZED));
       
        Document doc2 = new Document();
        doc2.add(new Field("name2", "lighter blog", Field.Store.YES,
                Field.Index.TOKENIZED));
       
        try
        {
            //在文档中加入索引
            IndexWriter indexWriter = new IndexWriter(
                    FSDirectory.getDirectory("E:\\", true),
                    new StandardAnalyzer(), true);
            indexWriter.setMaxFieldLength(3);
            indexWriter.addDocument(doc1);
           
            indexWriter.setMaxFieldLength(3);
            indexWriter.addDocument(doc2);
           
            indexWriter.close();
           
            query("lighter");
            query("javaeye");
        }
        catch (IOException e)
        {
            e.printStackTrace();
        }
    }
   
    public void query(String str)
    {
            IndexSearcher indexSearche = new IndexSearcher(path);
            QueryParser queryParser = new QueryParser("name",
                    new StandardAnalyzer());
            Query query = queryParser.parse(str);
            Hits hits = indexSearche.search(query);
            System.out.println("查找\"" + str + "\"共" + hits.length() + "结果");
    }
分享到:
评论

相关推荐

    lucene1.ppt

    1. 构建文本库:收集并存储所有待检索的信息。 2. 建立索引:对文本库中的信息进行索引,以提高搜索速度。 3. 搜索:用户输入查询,系统通过索引进行查找。 4. 结果处理:对搜索结果进行过滤和排序,返回给用户最...

    lucene全文检索全面教程

    1. **核心概念**:Lucene主要涉及的概念有文档(Document)、字段(Field)、索引(Index)、查询(Query)和搜索(Search)。文档是信息的基本单元,字段是文档的组成部分,索引是预处理后的数据结构,用于快速查找...

    lucene中文分词(庖丁解牛)庖丁分词

    《Lucene中文分词——庖丁解牛》 在自然语言处理领域,中文分词是基础且关键的一环。在Java开发中,Apache Lucene是一个强大的全文搜索引擎库,但默认并不支持中文,这就需要借助第三方分词工具。本文将深入探讨...

    lucene,lucene教程,lucene讲解

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

    lucene3.0 lucene3.0

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

    lucene整合mmseg4j实例和项目实例

    1. Lucene:Apache Lucene是一个高性能、全文检索引擎的Java库,它提供了完整的搜索功能,包括索引、查询、排序等。开发者可以利用Lucene构建自己的搜索引擎,或者将其嵌入到现有的应用程序中。 2. MMSEG4J:MMSEG4...

    Lucene in Action.pdf

    1. **Meet Lucene(认识Lucene)** - **章节概述**:本章主要介绍Lucene的基本概念、特点及其在搜索引擎领域的地位。读者将了解到Lucene的历史背景和发展现状。 - **知识点详解**: - **Lucene概述**:Lucene是一...

    Lucene时间区间搜索

    var startDate = new DateTime(2020, 1, 1); var endDate = new DateTime(2020, 12, 31); var startDateAsBytes = DateTools.DateToString(startDate, DateTools.Resolution.SECOND).getBytes(Encoding.UTF8); var ...

    Lucene3.5源码jar包

    1. **索引结构**:Lucene的核心在于其高效的倒排索引结构。在源码中,你可以看到`IndexWriter`类如何处理文档的添加、删除和更新,以及`SegmentMerger`如何合并多个段以优化索引。 2. **分词器(Tokenizer)与过滤...

    lucene-4.7.0全套jar包

    1. **分词与索引**:Lucene使用高效的分词器将文档内容分解成独立的词汇项(tokens),然后建立倒排索引。倒排索引是一种数据结构,它将每个词汇项映射到包含该词汇项的文档列表,极大地加速了搜索过程。 2. **搜索...

    Lucene示例 BM25相似度计算

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

    lucene in action英文版 lucene 3.30包

    1. **Lucene基础** Lucene是基于Java的开源搜索库,它的核心功能包括索引和搜索文本。索引过程将文本数据转换为可搜索的结构,搜索过程则根据用户输入的查询快速找到相关的文档。Lucene支持多种搜索类型,如布尔...

    lucene3源码分析

    ### Lucene3源码分析知识点概述 #### 一、全文检索的基本原理 ##### 1. 总论 全文检索系统是一种高效的信息检索技术,能够帮助用户在海量文档中快速找到包含特定关键词的信息。Lucene是Java领域内最受欢迎的全文...

    Lucene的原理完整版pdf

    1. **索引**:Lucene首先对文本进行索引,将文本内容转换为一系列可搜索的结构。索引过程包括分词(Tokenization)、词干提取(Stemming)、停用词处理(Stop Word Removal)等步骤。 2. **文档(Document)**:在...

    Annotated Lucene 中文版 Lucene源码剖析

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

    lucene 2.0 api以及lucene 3.0 api

    1. **索引构建**: Lucene 2.0 提供了 `IndexWriter` 类,用于创建和更新索引。开发者可以使用 `Document` 类来封装待索引的数据,然后通过 `addDocument()` 方法添加到索引中。 2. **查询构造**: 通过 `QueryParser...

    Lucene简介.介绍

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

    lucene所有的jar包

    1. **core jar包**:这是Lucene的基础模块,包含索引、搜索、分析等核心功能。在4.9.0版本中,主要的jar包有`lucene-core-4.9.0.jar`,它是所有其他模块的基础。 2. **analyzers jar包**:用于文本分析,将输入的...

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

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

Global site tag (gtag.js) - Google Analytics