首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

【搜索引擎】Solr:提高批量索引的性能

几个月前,我致力于提高“完整”索引器的性能。我觉得这种改进足以分享这个故事。完整索引器是 Box 从头开始创建搜索索引的过程,从 hbase 表中读取我们所有的文档并将文档插入到 Solr 索引中。...mapreduce 作业扫描 hbase 表,通过上述分片公式计算每个文件的目标分片,并将每个文档插入相应的 solr 分片中。...hbase 表扫描以及更新请求都在映射器中完成。 在每个映射器中,都有一个批处理作业的共享队列;和一个 http 客户端共享池,它们从队列中获取作业并将其发送到相应的分片。...Box 拥有近 500 亿份文档**,通过改进,完整索引器能够在不到两天的时间内完成此索引阶段。 但是,这种新模型也有其缺点,例如: 此模型在针对同一分片的工作人员之间没有通信。...因此,当一个分片响应缓慢时,来自其他并行运行的映射器的工作人员继续向它发送请求(并且失败,然后重试),即使一个或多个工作人员(在其他映射器中)已经确定该分片很慢。

65420

SolrCloud分布式搜索源码分析

从作用上, replica主要是做负载均衡/容灾, 本质就是把一个服务器复制N份, 然后将请求均匀分发到N个服务器上....在SolrCloud中, shard和replica是配合使用的, 比如一个collection可以分3个shard, 然后每个shard可以分2个replica, 每个replica对应的就是一份lucene...补全字段阶段的想法是非常直观的, 因为要返回的20个文档分散在3个分片中, 因此先把20个文档ID按所在的shard分3组, 然后分别向3个ShardNode异步发送3个请求, 这次每个请求直接指定了IDS...当前设计的缺陷 分阶段获取过程中的索引一致性问题: 目前的分布式查询分了两个阶段, 阶段1发起第一次请求从各分片获取TopN ids, 阶段2合并所有分片ids后再发起第二次请求去各分片获取要返回的字段...类似的问题其实是需要在两次请求的时候维护每个分片索引的一致性的, 目前solr没有做.

68210
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    腾讯实时分析平台Hermes介绍

    主要包含两类数据:用户导入的数据(位图文件)以及源数据(索引文件),内核主要根据用户请求逻辑处理索引文件以及位图文件。...4、整个数据对应多份,按照不同规则均匀分布在各个分析实例中,数据的merge服务在其中的一个分片中进行,每次请求将根据机器负载情况选择负载轻的作为merge服务器。...Hermes和开源的solr,elasticsearch又有什么不同? solr、es的使用特点如下: 1. 源自搜索引擎,侧重搜索与全文检索。 2....定位和数据规模的不同导致了hermes与solr、es的对索引使用方式有着本质的区别。下面从大数据的视角来阐述,为什么hermes更适合做大索引。 solr、es的索引严重依赖物理内存: 1....排序和统计并不会使用数据的真实值,而是通过标签技术将大数据转换成占用内存很小的数据标签,占用内存是原先的几十分之一。

    5.8K100

    搜索正在遍及世界

    倒排索引数据结构是从索引优先的角度写入的。字段常常被索引但是却不被存储——实际的存储并不重要或者已经在其它地方完成。...对传统数据库(SQL或NoSQL)做类似的事情需要对许多列进行索引,这对于大多数构建数据库的人来说都是十分繁琐的。 Solr的未来 Yonik 在他的主题演讲中指出了Solr的未来目标。...正如马克米勒(Mark Miller)在他的演讲中所说的:“Solr从搜索引擎开始逐渐回到解决相关的存储问题;而 其他解决方案从存储问题开始,并试图回到搜索上来“。...越来越多的人认为Solr的主要作用是数据的存储。对于大多数用户而言,它比数据库更友好,而且Solr正在逐渐成为真正的分布式存储引擎。 充实Solr的数据库功能还包括添加更多不同类型的连接功能。...越来越多的搜索引擎已经成为了应用的核心内容,而不是一个附加在主体之上的装饰物。当然,人们需要的不仅仅是搜索。随着机器学习和自然语言处理等相邻技术成为普通应用程序中越来越普通的组件,未来将十分令人期待。

    70930

    apache solr漏洞 可导致服务器被攻击

    apache最近爆出的漏洞越来越多,旗下的solr产品存在远程服务器执行恶意代码漏洞,该漏洞产生的主要原因是因为apache dataimporthandler数据外部收集的一个端口模块,该模块支持从远程的地址进行通信...apache这个漏洞影响范围较广低于solr 8.2.0版本的都会受到漏洞的影响与攻击,本身这个solr模块就支持从远程的地址进行数据的收集与导入功能,当用户对dataimport进行使用的时候首先会调用...handleRequestBody类,并将请求的模块进行重新配置,默认代码会对params.getDataConfig()参数里post值进行判断,当值为空就不会加载dataconfig里的配置,截图如下...首先请各位网站,服务器的运维人员对当前的apache solr版本继续查看,登录solr的控制面板,可以查看到当前的版本,如果低于8.2.0,说明存在漏洞,将solr的版本升级到最新版本,也可以对apache...,没有影响就关闭即可,关于该漏洞的修复与安全加固就到这里,愿我们的分享,能够帮助到更多使用apache solr的公司。

    1.8K10

    【搜索引擎】提高 Solr 性能

    在撰写本文时,我们很自豪地提到,该 API 每分钟服务约 15 万个请求,并每小时向我们最大区域的 Solr 发送约 21 万个更新。...ms 发现某些 Solr EBS 卷上的 IOPS 达到 100% 处理问题 分析 作为分析的一部分,我们提出了以下主题 Lucene 设置 Apache Solr 是一个广泛使用的搜索和排名引擎...让我们快速了解一下 Solr 是如何使用内存的。首先,Solr 使用两种类型的内存:堆内存和直接内存。直接内存用于缓存从文件系统读取的块(类似于 Linux 中的文件系统缓存)。...Solr 使用直接内存来缓存从磁盘读取的数据,主要是索引,以提高性能。 当它被暴露时,大部分堆内存被多个缓存使用。 JVM 堆大小需要与 Solr 堆需求估计相匹配,以及更多用于缓冲目的。...调整 Solr 集群 多分片模式的一个缺点是,如果任何副本被破坏,分片领导者将比其对等节点花费更多的时间来回答。这导致分片中最差的时间响应,因为 Solr 会在提供最终响应之前等待所有分片回答。

    70910

    apache漏洞 服务器远程执行恶意代码漏洞的修复与加固

    apache最近爆出的漏洞越来越多,旗下的solr产品存在远程服务器执行恶意代码漏洞,该漏洞产生的主要原因是因为apache dataimporthandler数据外部收集的一个端口模块,该模块支持从远程的地址进行通信...: apache这个漏洞影响范围较广低于solr 8.2.0版本的都会受到漏洞的影响与攻击,本身这个solr模块就支持从远程的地址进行数据的收集与导入功能,当用户对dataimport进行使用的时候首先会调用...handleRequestBody类,并将请求的模块进行重新配置,默认代码会对params.getDataConfig()参数里post值进行判断,当值为空就不会加载dataconfig里的配置,截图如下...首先请各位网站,服务器的运维人员对当前的apache solr版本继续查看,登录solr的控制面板,可以查看到当前的版本,如果低于8.2.0,说明存在漏洞,将solr的版本升级到最新版本,也可以对apache...,没有影响就关闭即可,关于该漏洞的修复与安全加固就到这里,愿我们的分享,能够帮助到更多使用apache solr的公司。

    88530

    0859-7.1.6-如何对Ranger审计日志进行调优

    情况2:将本地存储目录修改到HDFS上 (从HDFS到本地只有step2 步骤配置文件有差异,其余步骤一致。)...#如果有使用Atlas 参考ranger_audits,本文只讲述Ranger Audit,示例如下,具体可参考连接[1] #如下是本地数据目录找到如下配置文件,如果是HDFS到本地则配置相反,如图片中圈出的注释部分...并重启Solr Server 后发现有hdfs 中ranger_audits信息了,但是数据量目前对不上,需要先进行删掉ranger_audits,然后从备份中恢复 ?...进入Ranger Audit检查,到此ranger_audits从本地目录迁移到HDFS已完成 ?...该问题是请求处理器的顺序引起的。TTL 默认逻辑放置应在runUpdateProcessorFactory 之后,它才会实际执行更新。

    2.3K30

    Elasticsearch介绍

    Elasticsearch是一个实时分布式和开源的全文搜索和分析引擎。 它可以从RESTful Web服务接口访问,并使用模式少JSON(JavaScript对象符号)文档来存储数据。...这意味着每个碎片包含文档的所有属性,但包含的数量比索引少。水平分隔使碎片成为一个独立的节点,可以存储在任何节点中。主碎片是索引的原始水平部分,然后这些主碎片被复制到副本碎片中。...通过使用Elasticsearch中的网关概念,创建完整备份很容易。 与Apache Solr相比,在Elasticsearch中处理多租户非常容易。...Elasticsearch的缺点 Elasticsearch在处理请求和响应数据方面没有多语言和数据格式支持(仅在JSON中可用),与Apache Solr不同,Elasticsearch不可以使用CSV...每个表都是行的集合,就像每个映射都是JSON对象的Elasticsearch集合一样。 Elasticsearch 关系数据库 索引 数据库 碎片 碎片 映射 表 字段 字段 JSON对象 元组

    71800

    【技术分享】Solr DataImportHandler组件漏洞

    编号 CVE-2019-0193 漏洞简介 DataImportHandler是一个可选但使用广泛的模块,默认不启用,用于从数据库和其他源中提取数据,它有一个特性即整个DIH配置可以来自一个请求的“dataConfig...从Solr的8.2.0版本开始,使用这个参数需要设置 Java System property,设置"enable.dih.dataConfigParam" 为 true.。...漏洞详情 分析 漏洞越来越多,每个跟进都需要及时。...#the-scripttransformer 核心实现是org.apache.solr.handler.dataimport下的ScriptTransformer方法 ?...建议启动solr时添加对应的参数,通过java security manager 设置也可以进行安全加固。笔者认为严格来说并不能算是安全漏洞,仅仅是安全设计问题,只是支持的功能特性的范围太宽泛了。

    73930

    SolrCloud5.4.1集群实战(一)

    早期的solr仅仅支持主从架构模式,这种架构可以提高集群的吞吐量和可靠性,当面临越来越多的数据时,并不能提升检索性能,所以在solr4.x之后,开始支持cloud模式的集群,可以将一份超大索引水平切分到多台机器上...big_search的collection,它的shard是10,没有副本 /ROOT/server/solr-5.4.1/ && bin/solr create_collection -c big_search...action=DELETE\&name=big_search solr自带的zk命令操作zk上有关solr的文件目录: sh server/scripts/cloud-scripts/zkcli.sh...solr目录下,看该core的cat core.properties文件,并拷贝其中的core_name作为该url的最后一个参数,才行 Java代码 curl http://localhost:...zk实现,所有的词库和配置文件,都在集中zk上,所有的节点会从 zk上加载词库和scheml。

    86260

    第4章 配置Solr

    第4章 配置Solr 作者:幽鸿   Sep 20, 2015 4:15:52 PM 本章包括  处理一个查询请求  使用搜索组件扩展查询处理  管理变暖搜索者  管理缓存行为 到目前为止...我们在这一章的重点介绍最重要的配置设置Solr,尤其是那些影响Solr如何处理来自客户机应用程序的请求。你获得的知识在本章将被应用在这本书的其余部分。...Solr的大多数的配置中指定XML文档,本章从XML包含大量代码清单显示XML片段。但是我们的主要重点是概念背后的配置设置,而不是特定的XML语法,这是自解释的。...首先,从配置的角度让我们看看会发生什么,当你启动Solr服务器。从第2章召回,Solr在Jetty作为Java web应用程序运行。...属性文件包含一行定义核心的名称,名称=文物,包括那些需要触发自动发现文物的核心包括。图4.1描述了核心。属性和solrconfig。

    62130

    后端技术杂谈4:Elasticsearch与solr入门实践

    定时更新脚本 加入到定时任务,每5分钟增量更新一次索引: ? 定时任务 在 Solr 管理后台测试搜索结果: ?...Solr 已经内置了 QueryElevationComponent 插件,可以从配置文件中获取搜索关键词对应的干预列表,并将干预结果排在搜索结果的前面。...StackOverflow将全文搜索与地理位置和相关信息进行结合,以提供more-like-this相关问题的展现。 GitHub使用Elasticsearch来检索超过1300亿行代码。...其主要功能包括全文检索、命中标示、分面搜索、动态聚类、数据库集成,以及富文本(如Word、PDF)的处理。Solr是高度可扩展的,并提供了分布式搜索和索引复制。...实际生产环境测试* 下图为将搜索引擎从Solr转到Elasticsearch以后的平均查询速度有了50倍的提升。 ?

    1.2K10

    【漏洞预警】Apache Solr远程代码执行漏洞 (CVE-2019-0193)处置手册及技术分析

    是用于从数据库或其他源提取数据的常用模块,该模块中所有DIH配置都可以通过外部请求的dataConfig参数来设置,由于DIH配置可以包含脚本,因此该参数存在安全隐患。...攻击者可利用dataConfig参数构造恶意请求,实现远程代码执行,请相关用户尽快升级Solr至安全版本,以确保对此漏洞的有效防护。 ?...4漏洞防护 4.1 官方升级 从Solr的8.2.0版本开始,使用问题参数dataConfig需要将java系统属性“enable.dih.dataconfigparam”设置为true。...2、确保网络设置只允许可信流量与Solr建立通信,尤其是与DIH请求处理器的通信。 4.3 产品防护 针对此漏洞,绿盟科技防护产品已发布规则升级包,可形成针对此漏洞的防护能力。...在doFullImport中,首先会创建一个DocBuilder对象,DocBuilder的主要功能是从给定配置中创建Solr文档,同时会记录一些状态信息。

    1.1K10

    SolrLucene优劣势分析

    从solr的结构,扩展、维护整体看,发现有非常多的“工程亮点”,熟读solr定会增加对java的理解、运用技能。...—自己稍加扩展也不是问题 (3) swap core 的时候,单结点多core,并且core对应的索引比较大的时候,切换过程出现内存2倍化现象,甚至超时现象。—如果分前后排切换这些都不是问题了。...—-当然可以将数据分区,避免merge (7) 得分因子是可以调整的,但是得分因子的增加、得分公式的扩展,无法直接从solr配置插入。...访问请求不支持定时和定量控制,索引垂直扩容(增加索引副本,支撑更多访问请求)、索引水平扩容(增加索引分区数,支撑更多数据量,平衡性能和空间压力) (23) solr自容错还不够强大。...例如schema 变更导致的不合理检测以及配置错误的回滚、solrconfig的一些参数不能动态获取,必须事先配置好。oom之后不能自动reload!请求量大的时候也不能抛弃一些请求。

    1.2K40

    Solr集群(即SolrCloud)搭建与使用

    当一个系统的索引数据量少的时候是不需要使用SolrCloud的,当索引量很大,搜索请求并发很高,这时需要使用SolrCloud来满足这些需求。...SolrCloud使用zookeeper是使用其的管理集群的,请求过来,先连接zookeeper,然后再看看分发到那台solr机器上面,决定了那台服务器进行搜索的,对Solr配置文件进行集中管理。...实现的思路是将索引数据进行Shard(分片)拆分,每个分片由多台的服务器共同完成,当一个索引或搜索请求过来时会分别从不同的Shard的服务器中操作索引。...c、Master或Slave Master是master-slave结构中的主结点(通常说主服务器),Slave是master-slave结构中的从结点(通常说从服务器或备服务器)。...注意:collection就是一个完整的索引库,分片存储,有两片,两片的内容不一样的。一片存储在三个节点,一主两从,他们之间的内容就是一样的。` 如下图所示 [b203vkh8cj.png?

    1.9K00
    领券