solr的三种提交方式

2023-11-18

三种solr提交索引的方式

1. commit

通过api直接commit,这样性能比较差,在我测试下,平均每条commit600ms

HttpSolrServer solrServer = new HttpSolrServer("http://localhost:8080/solr/dtrace");

SolrInputDocument doc1 = new SolrInputDocument();

doc1.addField("id", i);

solrServer.add(doc1);

solrServer.commit();

 

2. AutoCommit

参考:http://wiki.apache.org/solr/SolrConfigXml

autoCommit一般的配置如下:

 

Xml代码   收藏代码
  1. <updateHandler class="solr.DirectUpdateHandler2">  
  2.       <autoCommit>  
  3.                <maxTime>2000</maxTime>  
  4.               <openSearcher>false</openSearcher>  
  5.       </autoCommit>  
  6.       <autoSoftCommit>  
  7.               <maxTime>10000</maxTime>  
  8.       </autoSoftCommit>  
  9.         <updateLog>  
  10.              <str name="dir">${solr.shard.data.dir:}</str>  
  11.         </updateLog>  
  12.    </updateHandler>   

 

4.0开始引入了autoSoftCommit和openSearcher的概念这个是什么意思呢?

 

As of Solr 4.0, there is a new “soft commit” capability, and a new parameter for hard commits – openSearcher. Currently, there’s quite a bit of confusion about the interplay between soft and hard commit actions。

 

solr hard commit做的事情

 

1、生成一个新的tlog文件,删除旧的tlog。

2、把内存中的索引文件fsync到磁盘,并创建一个index descriptor。这里比较耗费机器资源。

这样即使jvm崩溃或者宕机,也不影响这部分索引。

3、使得索引在searcher中可见。但是也需要重新打开searcher才行。

 

soft commit做的事情

1、把内存文件fsync到磁盘,但不创建index descriptor。

也就是说原索引和现在的索引还互不感知,所以如果jvm崩溃,那这部分索引就没了。

2、可以重新打开searcher,使得新的索引可以被查找到。

 

更详细的信息参考:http://searchhub.org/2013/08/23/understanding-transaction-logs-softcommit-and-commit-in-sorlcloud/

 

3. CommitWithin

简单的说就是告诉solr在多少毫秒内提交,比如如果我指定<add commitWithin=10000>,将会高速solr在10s内提交我的document。用法

1.可以在add方法设置参数,比如 server.add(mySolrInputDocument, 10000);

2.

UpdateRequest req = new UpdateRequest();

req.add(mySolrInputDocument);

req.setCommitWithin(10000);

req.process(server);

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

solr的三种提交方式 的相关文章

随机推荐

  • TCP思维导图

  • GTest源码剖析(四)——TEST_P宏

    GTest源码剖析 TEST P宏 GTest源码剖析TEST P宏 TEST P宏用法 TestWithParam 类 1 TestWithParam 类定义 2 WithParamInterface 模版类定义 INSTANTIATE
  • 使用CURL上传图片至远程服务器(PHP >5.5)

    开头引入 use CURLFile curl文件上传 接收并上传 if FILES data file new CURLFile FILES file1 tmp name image jpeg FILES file1 name 文件流 fi
  • MVP和MVC的区别

    前提回顾 MVC架构 MVC就是Model View Controller 它们的作用是 它们之间的关系如下图所示 View传送指令到Controller Controller完成业务逻辑后 改变Model的状态 Model将新的数据发送到
  • RPC 开发系列一:RPC 基本介绍

    一 什么是 RPC RPC 的全称是 Remote Procedure Call 即远程过程调用 功能 屏蔽远程调用跟本地调用的区别 让我们感觉就是调用项目内的方法 隐藏底层网络通信的复杂性 让我们更专注于业务逻辑 二 RPC 通信流程 发
  • sourceforge文件下载过慢之原始解决方法

    近日 从sourceforge下载文件超线慢 从下午一直下载到网上11点多 居然下不完39MB的资料 百度一下方法有很多 却一个都没成功 比如 http sourceforge mirrorservice org 更是没用 部份有用 因为不
  • __cdecl __stdcall __fastcall区别

    一 三者区别一览表 stdcall cdecl fastcall 参数传递方式 右 gt 左 压栈 右 gt 左 压栈 左边开始的两个不大于4字节 DWORD 的参数分别放在ECX和EDX寄存器 其余的参数仍旧自右向左压栈传送 清理栈方 被
  • 【逆波兰表达式求值】

    逆波兰表达式求值 给你一个字符串数组 tokens 表示一个根据 逆波兰表示法 表示的算术表达式 请你计算该表达式 返回一个表示表达式值的整数 注意 有效的算符为 和 每个操作数 运算对象 都可以是一个整数或者另一个表达式 两个整数之间的除
  • 【SpringBoot框架篇】31.基于分布式锁或xxx-job实现分布式任务调度

    文章目录 1 简介 2 分布式锁实现 2 1 引用依赖 2 2 定义分布式锁注解 2 3 配置切入点和获取锁释放锁逻辑 2 4 测试任务 3 使用分布式任务调度平台xxx job 3 1 下载源码并运行项目 3 2 springBoot项目
  • 微信小程序之授权登录篇

    之前微信授权登录时是直接可以通过getUserInfo接口 弹出授权弹窗 由于微信官方修改了 getUserInfo 接口 所以现在无法实现一进入微信小程序就弹出授权窗口 只能通过 button 去触发 微信的官方解释如下 为优化用户体验
  • React 初识之Umi项目搭建实战

    一 创建项目 创建之前需要安装 Node js 和 npm yarn 这俩个环境 在WebStorm里面创建一个项目 输入命令 yarn create umi 弹出选项 这里我们选择第二项APP 选择是否使用typescript 这里选no
  • JavaScript常用事件讲解

    声明 本人的所有博客皆为个人笔记 作为个人知识索引使用 因此在叙述上存在逻辑不通顺 跨度大等问题 希望理解 分享出来仅供大家学习翻阅 若有错误希望指出 感谢 事件流 事件流描述的是从页面接收事件的顺序 事件冒泡 事件开始由最具体的元素接收
  • c语言统计各类字符个数

    输入十个字符 统计其中英文字母 空格或回车 数字字符和其他字符的个数 7 43 统计字符分数 15 全屏浏览题目 切换布局 作者 颜晖 单位 浙大城市学院 本题要求编写程序 输入10个字符 统计其中英文字母 空格或回车 数字字符和其他字符的
  • mysql的索引 优化 前导列

    组合索引之 前导列 1 对于where子句中出现的列要想索引生效 会有一些限制 这就和前导列有关 2 所谓前导列 就是在创建复合索引语句的第一列或者连续的多列 比如通过 CREATE INDEX comp ind ON table1 x y
  • 第一个Node程序,Node入门

    第一个Node程序 在前面的所有内容中 我们编写的JavaScript代码都是在浏览器中运行的 因此 我们可以直接在浏览器中敲代码 然后直接运行 从本章开始 我们编写的JavaScript代码将不能在浏览器环境中执行了 而是在Node环境中
  • 位运算及其应用详解

    http blog chinaunix net uid 21411227 id 1826986 html 一 逻辑运算符 1 位与运算 1 运算规则 位与运算的实质是将参与运算的两个数据 按对应的二进制数逐位进行逻辑与运算 例如 int型常
  • 低代码发展史及现状

    做开发 真的一定需要写代码吗 这次真的轮到程序员革自己的命了 业内很多人都这样感叹 2019年见证了低代码 零代码市场的首次爆发 种种迹象似乎在提醒着我们 一个新的 风口 正在形成 Do developers really need to
  • NeRF项目LLFF 解决新场景pose生成的问题

    最近一直在做NeRF相关的项目 其中LLFF前向数据集 是NeRF常用数据集 本文讲下怎么对NeRF数据进行处理 几个重要的链接地址 github llff GitHub Fyusion LLFF Code release for Loca
  • upload-labs-2

    登陆第二关 查看代码 发现是文件类验证 抓包 修改为允许发现成功 放包
  • solr的三种提交方式

    三种solr提交索引的方式 1 commit 通过api直接commit 这样性能比较差 在我测试下 平均每条commit600ms HttpSolrServer solrServer new HttpSolrServer http loc