`

Lucene 常用关键字简单解释

阅读更多
lucene最主要就是做两件事:建立索引和进行搜索来看一些在lucene中使用的术语,这里并不打算作详细的介绍,只是点一下而已----因为这一个世界有一种好东西,叫搜索。

IndexWriter:lucene中最重要的的类之一,它主要是用来将文档加入索引,同时控制索引过程中的一些参数使用。

Analyzer:分析器,主要用于分析搜索引擎遇到的各种文本。常用的有StandardAnalyzer分析器,StopAnalyzer分析器,WhitespaceAnalyzer分析器等。

Directory:索引存放的位置;lucene提供了两种索引存放的位置,一种是磁盘,一种是内存。一般情况将索引放在磁盘上;相应地lucene提供了FSDirectory和RAMDirectory两个类。

Document:文档;Document相当于一个要进行索引的单元,任何可以想要被索引的文件都必须转化为Document对象才能进行索引。

Field:字段。

IndexSearcher:是lucene中最基本的检索工具,所有的检索都会用到IndexSearcher工具;

Query:查询,lucene中支持模糊查询,语义查询,短语查询,组合查询等等,如有TermQuery,BooleanQuery,RangeQuery,WildcardQuery等一些类。

QueryParser: 是一个解析用户输入的工具,可以通过扫描用户输入的字符串,生成Query对象。

Hits:在搜索完成之后,需要把搜索结果返回并显示给用户,只有这样才算是完成搜索的目的。在lucene中,搜索的结果的集合是用Hits类的实例来表示的。

import java.io.IOException;  
import java.io.StringReader;  
 
import org.apache.lucene.analysis.Analyzer;  
import org.apache.lucene.analysis.Token;  
import org.apache.lucene.analysis.TokenStream;  
import org.apache.lucene.analysis.standard.StandardAnalyzer;  
 
public class StandardAnalyzerTest{  
    //构造函数,  
    public StandardAnalyzerTest(){  
    }  
    public static void main(String[] args){  
        //生成一个StandardAnalyzer对象  
        Analyzer aAnalyzer = new StandardAnalyzer();  
        //测试字符串  
        StringReader sr = new StringReader("lighter javaeye com is the are on");  
        //生成TokenStream对象  
        TokenStream ts = aAnalyzer.tokenStream("name", sr);   
        try {  
            int i=0;  
            Token t = ts.next();  
            while(t!=null){  
                //辅助输出时显示行号  
                i++;  
                //输出处理后的字符  
                System.out.println("第"+i+"行:"+t.termText());  
                //取得下一个字符  
                t=ts.next();  
            }  
        } catch (IOException e) {  
            e.printStackTrace();  
        }  
    }  


分享到:
评论

相关推荐

    lucene基本使用,适合初学者

    以下是一段简单的示例代码,演示如何使用Lucene创建索引并进行检索: ```java public class LuceneExample { private void createIndex(String indexPath) throws Exception { // 创建IndexWriter实例 ...

    基于JAVA的文本搜索引擎的设计与实现

    - **搜索模块**:实现基于关键字的搜索功能,并通过Lucene的API实现高效的查询。 - **相似度计算**:采用余弦相似度算法计算两篇文档之间的相似度。 - **聚类分析**:使用K-Means算法对文档进行聚类,便于文档的...

    lucene自学

    - `NO`:表示字段既不被索引也不被存储,通常不常用。 #### 四、索引文件结构 - **segments**:索引文件的基本单位,每个段包含了一部分文档的信息。 - `_0.fnm`:存储字段名。 - `_0.fdt`/`_0.fdx`:分别存储...

    【重要】Lucene多线程操作实现[定义].pdf

    IndexModifier是Lucene提供的一个类,它封装了IndexWriter和IndexReader的常用方法,并在内部实现了多线程同步锁定。 - **使用相同的Directory对象**:IndexWriter、IndexReader、IndexModifier和IndexSearcher应尽...

    一个专业搜索公司关于lucene+solar资料(1)

    - 支持多种查询方式,如关键字搜索、语音搜索等。 - 能够根据用户的查询历史和偏好提供个性化搜索结果。 **1.3 你也可以做搜索引擎** - **构建搜索引擎的步骤:** - 网络爬虫:自动抓取网页内容。 - 数据处理...

    Elasticsearch 是一个基于 Lucene 的开源搜索引擎,支持分布式、多租户的全文搜索功.docx

    **Elasticsearch** 是一款基于 **Lucene** 的开源搜索引擎,它支持分布式、多租户的全文检索功能,并且能够高效地处理大量数据的存储、搜索和分析需求。作为一个高度可扩展的解决方案,Elasticsearch 在众多企业级...

    java常用lib库说明

    ### Java常用Lib库说明 #### Proxool连接池 在Java开发中,数据库连接池是一项重要的技术,它能够显著提高应用程序处理数据库请求的性能。在众多数据库连接池中,Proxool因其稳定性与高效性而备受青睐。Proxool是...

    搜索功能设计java实现

    总结来说,Java通过多种方式实现了搜索功能,从简单的集合搜索到复杂的全文搜索引擎如Lucene、Elasticsearch和Solr。开发者可以根据项目需求选择合适的工具和技术,结合优化策略,实现高效、用户友好的搜索功能。

    KeywordAnalysisForReview

    其中,Apache Lucene和Stanford NLP是两个常用的自然语言处理库,它们包含了一系列预处理和分析功能,如分词、词性标注、停用词移除等,这些都是提取关键字的基础步骤。 1. **Apache Lucene**: 这是一个全文检索库...

    IKAnalyzer中文分词好帮手

    - **Lucene优化**:针对Lucene全文检索进行了优化,提供了一个专门的查询分析器IKQueryParser,采用歧义分析算法来优化查询关键字的搜索排列组合,显著提高了Lucene检索的命中率。 ##### 1.3 分词效果示例 以下是...

    java技能总结

    **Lucene简介**:Lucene 是 Apache 基金会下的一个开源全文搜索引擎库,它允许开发者根据关键字搜索文档内容,但只能在一个网站内部进行搜索。 **Lucene机制**: 1. **创建索引库**:指定索引库的位置。 2. **创建 ...

    简单搜索引擎分析与开发毕业设计论文(20210809123532).pdf

    随着互联网技术的不断进步,搜索引擎也从最初的简单关键字搜索,发展到了如今复杂的算法和先进的技术。搜索引擎的核心技术包括网络爬虫、索引数据库、查询处理以及排序算法。网络爬虫负责从互联网上抓取页面,索引...

    ssm唐诗检索系统

    如果系统采用了全文搜索,可能涉及到Lucene或者Solr这样的搜索引擎技术,对唐诗内容进行索引,提高查询效率。而分页功能则涉及到数据库的分页查询,通常使用LIMIT和OFFSET关键字来实现,确保用户可以逐页查看检索...

    common.search

    Java提供了丰富的String类方法,如`indexOf()`、`startsWith()`、`endsWith()`、`contains()`等,用于在文本中查找关键字。同时,正则表达式(Pattern和Matcher类)提供更复杂的模式匹配能力。 2. **集合操作**:在...

    Elasticsearch的核心功能和特点

    Elasticsearch的设计理念强调简单性、可扩展性和高效性,并采用了倒排索引技术,以支持高性能的全文搜索和关键字搜索。 #### 二、实时搜索能力 Elasticsearch使用近实时(NRT)搜索引擎技术,这意味着在数据写入后...

    关键词分析程序

    NetBeans是一款流行的开源集成开发环境(IDE),它支持多种编程语言,包括Java,这使得在NetBeans中实现关键词分析程序变得相对简单。 首先,我们需要理解关键词分析的基本原理。关键词分析通常涉及以下步骤: 1. ...

    opencms资料

    - **LRU缓存策略**:了解最常用的缓存淘汰策略之一。 #### 七、JSP代码集 除了使用OpenCMS提供的标签之外,还可以使用JSP技术增强页面功能。 - **如何处理页面错误**:捕获和处理异常情况。 - **JSP页面的重定向*...

    学习Java语言的30个参考,让你坐拥别人之上的30个擦考

    - **多线程**:学习并发控制机制,如synchronized关键字、volatile变量等。 - **反射机制**:利用Class对象访问和操作类的信息及功能。 - **事件处理模型**:学会监听器模式,处理用户界面事件。 - **非阻塞I/O**:...

Global site tag (gtag.js) - Google Analytics