Lucene是免费开放源代码的全文搜索引擎工具包,凭借着其强劲的搜索功能和简单易用的实现,在国内已经很普及,甚至一度出现了言搜索必称Lucene的盛景。
在国内对Lucene的介绍可以分为3块儿:
第一类是:以车东 的Lucene:基于Java的全文检索引擎简介 为代表的基础入门介绍;
第二类是Lucene倒排索引原理和Lucene软件包、实现类的介绍;
第三类是以中文分词为中心的介绍;
1、Lucene 的内建不支持群集。
Lucene是作为嵌入式的工具包的形式出现的,在核心代码上没有提供对群集的支持。实现对Lucene的群集有三种方式:1、继承实现一个 Directory;2、使用Solr 3、使用 Nutch+Hadoop;使用Solr你不得不用他的Index Server ,而使用Nutch你又不得不集成抓取的模块;
2、区间范围搜索速度非常缓慢;
Lucene的区间范围搜索,不是一开始就提供的是后来才加上的。对于在单个文档中term出现比较多的情况,搜索速度会变得很慢。因此作者称Lucene是一个高效的全文搜索引擎,其高效仅限于提供基本布尔查询 boolean queries;
3、排序算法的实现不是可插拔的,因为贯穿Lucene的排序算法的tf/idf 的实现,尽管term是可以设置boost或者扩展Lucene的Query类,但是对于复杂的排序算法定制还是有很大的局限性;
4、Lucene的结构设计不好;
Lucene的OO设计的非常糟,尽管有包package和类class,但是Lucene的设计基本上没有设计模式的身影。这是不是c或者c++程序员写java程序的通病?
A、Lucene中没有使用接口Interface,比如Query 类( BooleanQuery, SpanQuery, TermQuery...) 大都是从超类中继承下来的;
B、Lucene的迭代实现不自然: 没有hasNext() 方法, next() 返回一个布尔值 boolean然后刷新对象的上下文;
5、封闭设计的API使得扩展Lucene变得很困难;
参考第3点;
6、Lucene的搜索算法不适用于网格计算;
分享到:
相关推荐
2. **文档长度的影响**:文档越长,包含查询词的可能性越大,但得分反而可能较低。 3. **查询精确度不高**:基础排序算法往往难以精准地匹配用户的意图。 #### 改进的算法 为了克服基础排序算法的不足,文章提出...
这本书以幽默轻松的写作风格,深入浅出地介绍了Lucene的基础知识和实践应用,虽然在深度上可能稍显不足,但其详尽的代码注释对于初学者来说是非常有价值的参考资料。 在书中,作者首先从第1章开始介绍Lucene的基础...
- **需求背景**:随着网站规模的不断扩大,原有系统的不足逐渐显现,如索引重建耗时长、索引字段变更频繁、分词算法调整、搜索结果异常等问题日益突出。 - **改进方向**: - 实现自动重建索引,且在重建过程中能够...
Solr的出现是为了弥补Lucene在企业管理、监控和服务支撑方面的不足,可以看作是Lucene在企业搜索领域的扩展。 【Solr的特性】 1. 高级全文搜索功能,包括模糊匹配和布尔运算。 2. 优化处理高流量的网络请求。 3. ...
IK Analyzer最初由杨洪强开发,旨在解决Mysql、Lucene等开源项目中对中文分词支持不足的问题。其核心特性包括: 1. 动态词典加载:IK支持在运行时动态更新词典,方便应对词汇的快速变化。 2. 精细分词模式:提供...
尽管如此,Lucene在处理分布式存储管理与集群搜索管理上存在一些不足。Elasticsearch是建立在Lucene之上,提供了一套完整的分布式搜索解决方案,具有高度可扩展性、实时性和易用性。它通过对外暴露RESTful API,使得...
在有赞的实践中,部署和架构设计考虑了各种因素,如系统限制(ulimit、vm.max_map_count、堆大小、GC设置、大页内存)、服务设置(如内存锁定、ping设置、最小主节点数)、索引设置(模板配置、分片/副本数量、刷新...
这种方法虽然简单,但随着数据量的增长和用户需求的复杂化,其效率和灵活性逐渐变得不足。 2. 中期搜索变化: 面对大量数据和频繁的搜索请求,数据库层面的搜索不再适用,于是出现了各种全文检索引擎工具和应用,...
6. Solr 基于 Zookeeper,支持分布式、备份和再平衡,以确保高可用性和容错能力。 7. 采用插件架构,易于扩展,提供了许多扩展点以满足定制需求。 系统架构方面,SolrHome 是 Solr 运行的主要目录,包含多个独立的 ...
Elasticsearch(简称ES)是基于Lucene构建的一款开源、分布式、RESTful搜索和分析引擎。它允许用户快速存储、搜索和分析大量数据。然而,Elasticsearch的默认命令行操作对新手来说可能有些复杂,而Head插件的出现则...
- 安装过程中可能会遇到虚拟内存不足的问题,这需要调整系统的 `vm.max_map_count` 参数。临时解决方案是直接修改系统设置,永久解决方案是在 `/etc/sysctl.conf` 文件中添加相应配置并重启系统。 5. **安装 IK ...
6. 信息检索的挑战和不足 信息检索是一个复杂的过程,存在许多挑战和不足,例如信息的爆炸式增长、信息的异构性、信息的噪声等。 7. 全文检索在信息社会中的应用 全文检索在信息社会中的应用非常广泛,例如搜索...
- “ES”代表Elasticsearch,一款基于Lucene的搜索引擎,用于全文搜索和分析。 - “Cross-Cluster Search”指的是跨集群搜索,这是Elasticsearch的一个功能,用于在多个Elasticsearch集群之间搜索数据。 - “生产...
Solr中文分词器是针对Apache Solr全文检索引擎在处理中文文本时的不足而设计的一种解决方案。Solr默认的分词策略主要针对英文文本,它以空格为分隔符进行分词,而对于中文这种没有明显分隔符的语言,就需要特定的...
Elasticsearch是一个开源的全文搜索引擎,它基于Lucene构建,被广泛应用于大数据分析和实时搜索领域。8.0.1是其一个重要的版本更新,针对Linux操作系统进行了优化,特别是对于x86_64架构的服务器。这个压缩包`...
Elasticsearch是一种分布式、开源的全文搜索引擎,基于Lucene构建,具有实时分析、高可扩展性和高可用性的特点。它不仅用于搜索,还广泛应用于日志分析、监控、数据可视化等多个领域。Elasticsearch的设计理念是使...
Elasticsearch是一种基于Lucene的分布式、RESTful搜索引擎,广泛应用于日志分析、全文检索以及实时数据分析等领域。而Kibana则弥补了Elasticsearch在用户界面和交互方面的不足,使其成为了一款功能完备的数据分析和...
6. **数据分析**:通过聚合操作,Elasticsearch可以进行复杂的数据分析,例如统计、排序、分组等,是大数据分析的重要工具。 **三、Elasticsearch的缺点** 1. **资源消耗**:Elasticsearch在处理大量数据时,内存...