solr与.net系列课程(八)solr中重跑索引的注意事项

 

solr与.net系列课程(八)solr中重跑索引的注意事项

我们如果在项目中使用solr,那肯定就是把数据库中的数据跑进solr服务器中,solr有两种操作一种是新建索引,一种是增量索引,这里我们来说一说新建索引的一下注意事项

终止跑索引                  http://192.168.0.9:8080/solr/collection1/dataimport?command=abort

开始索引                     http://192.168.0.9:8080/solr/collection1/dataimport?command=full-import

当我们第一次执行索引时,因为solr中没有数据,所以一切都会是按照我们想象的结果发生,但当我们需要重新执行索引的时候,在用上面的链接执行,就会出现一个问题,执行时是solr中的所有数据都消失了,然后在一点点的增加,这样肯定是不行的,因为当数据量很大是,执行一次索引要花费很长时间,这时用户登录你的系统就会发现你的数据不够,会出问题的,只有执行全部完成时数据才会完整,导致这个原因是因为solr默认的所以机制是,先移除原有的所有数据(其实是转移到另一个位置,当索引完成时在删除,索引异常时会回滚),然后在一条条的往里面跑,但是我们可以选择重跑索引时不移除数据,而是逐条覆盖原有数据,这样就不会影响用户使用的,但是会增加索引的时间,

执行语句为  http://192.168.0.9:8080/solr/collection1/dataimport?command=full-import&clean=false

在图形界面如下操作:

然后我们在来说一说多表索引的问题,当我们的数据是从多张表中获取的,如下

<dataSource driver="com.microsoft.sqlserver.jdbc.SQLServerDriver" url="jdbc:sqlserver://192.168.0.9;DatabaseName=test" user="sa" password="123"/>
<document name="Info">
<entity name=" test1 " transformer="ClobTransformer" pk="id" query="select id, name address,phone,class,addtime from tableA"
deltaImportQuery=" select id, name address,phone,class,addtime from tableA"
deltaQuery="SELECT id FROM tableA where adddate > '${dataimporter.last_index_time}'">
<field column="id" name="id" />
<field column="name" name="solrname" />
<field column="address " name=“address " />
<field column="phone " name="phone " />
<field column="class " name="class " />
<field column="addtime " name="addtime " />
</entity>
<entity name=" test2 " transformer="ClobTransformer" pk="id" query="select id, name address,phone,class,addtime from tableB"
deltaImportQuery=" select id, name address,phone,class,addtime from tableB"
deltaQuery="SELECT id FROM tableB where adddate > '${dataimporter.last_index_time}'">
<field column="id" name="id" />
<field column="name" name="solrname" />
<field column="address " name=“address " />
<field column="phone " name="phone " />
<field column="class " name="class " />
<field column="addtime " name="addtime " />
</entity>
</document>
</dataConfig>

这个数据源就是从tableA与tableB中获取数据,当然了,两张表的id不能重复,否则后进来的会覆盖先进入的数据,那么当我们只想重新索引其中一张表怎么办,

http://192.168.0.9:8080/solr/collection1/dataimport?command=full-import,这个语句会重跑所有的数据(两个table都会重跑),其实solr是可以根据entity的name单个索引的,其他表的数据不变

方法如下:

http://192.168.0.9:8080/solr/collection1/dataimport?entity=test1&command=full-import,当然也可以加上clean=false,

图形界面操作方式:

 
 
标签: .net solr

solr中重跑索引的更多相关文章

  1. solr与.net系列课程(八)solr中重跑索引的注意事项

    solr与.net系列课程(八)solr中重跑索引的注意事项 我们如果在项目中使用solr,那肯定就是把数据库中的数据跑进solr服务器中,solr有两种操作一种是新建索引,一种是增量索引,这里我们来 ...

  2. CDH使用Solr实现HBase二级索引

      一.为什么要使用Solr做二级索引二.实时查询方案三.部署流程3.1 安装HBase.Solr3.2 增加HBase复制功能3.3创建相应的 SolrCloud 集合3.4 创建 Lily HBa ...

  3. .Net程序员 Solr-5.3之旅 (三)Solr 从MSSQ导入索引数据

    阅读目录 引言 准备工作 data-config.xml schema.xml 导入数据 结尾 附件下载 引言 Other men live to eat, while I eat to live.- ...

  4. Airflow 重跑dag中部分失败的任务

    重跑dag中部分失败的任务 例如 dagA 中, T1 >> T2 >> T3 >> T4 >> T5  ,其中 T1 T2 成功, T3 失败, T4 ...

  5. 使用Oozie中workflow的定时任务重跑hive数仓表的历史分期调度

    在数仓和BI系统的开发和使用过程中会经常出现需要重跑数仓中某些或一段时间内的分区数据,原因可能是:1.数据统计和计算逻辑/口径调整,2.发现之前的埋点数据收集出现错误或者埋点出现错误,3.业务数据库出 ...

  6. solr入门之多线程操作solr中索引字段的解决

    涉及的问题: 建索引时有一个字段是该词语出现的次数,这个字段是放在solr里的  而我用的是多线程来进行全量导入的,这里就涉及到了多线程问题 多个线程操作同一个变量时怎样处理? 我是这样子做的 : 首 ...

  7. Solr 08 - 在Solr Web管理页面中查询索引数据 (Solr中各类查询参数的使用方法)

    目录 1 Solr管理页面的查询入口 2 Solr查询输入框简介 3 Solr管理页面的查询方案 1 Solr管理页面的查询入口 选中需要查询的SolrCore, 然后在菜单栏选择[Query]: 2 ...

  8. solr 4.4添加索引是新手容易遇到的问题

    solr 4.4添加索引是新手容易遇到的问题异常一.Exception in thread "main" java.lang.NoClassDefFoundError: org/a ...

  9. json数据处理实战:Kafka+Flume+Morphline+Solr+Hue数据组合索引

    背景:Kafka消息总线的建成,使各个系统的数据得以在kafka节点中汇聚,接下来面临的任务是最大化数据的价值,让数据“慧”说话. 环境准备: Kafka服务器*3. CDH 5.8.3服务器*3,安 ...

随机推荐

  1. 《Linux Device Drivers》第十四章 Linux 设备型号

    基本介绍 2.6内核设备模型来提供的抽象叙述性描述的一般系统的结构,为了支持各种不同的任务 电源管理和系统关机 用户空间与通信 热插拔设备 设备类型 kobject.kset和子系统 kobject是 ...

  2. 惊人go语言(image网站开发)

    [ 声明:版权全部,欢迎转载,请勿用于商业用途.  联系信箱:feixiaoxing @163.com] 有过python web开发经验的朋友.相信对它的便利性肯定印象很深刻. 事实上利用go语言对 ...

  3. Duanxx的C++学习 : 数字转换String

    下面是这两个数字转换String道路.件:sstream string num2str1(unsigned int num) { stringstream ss; ss<<num; ret ...

  4. 线程池ThreadPoolExecutor使用简介(转)

    一.简介 线程池类为 java.util.concurrent.ThreadPoolExecutor,常用构造方法为: ThreadPoolExecutor(int corePoolSize, int ...

  5. Cordova 使用经验

    1. 需要下载ant,ant需要的文件: build.xml <?xml version="1.0" ?> <project name ="antPro ...

  6. React Native开发的通讯录应用

    React Native开发的通讯录应用(使用JavaScript开发原生iOS应用,vczero) 0.前言: 项目地址:https://github.com/vczero/React-Native ...

  7. Android监视返回键

    android在发展中,监视键返回到后事件经常被用来,在下面的例子来说明什么android返回键事件监听器. public class BackKeyTest extends Activity { / ...

  8. C#图片压缩处理

    近期在做相冊功能遇到一个问题,就是载入图片的时候然后放大,感觉有点卡.图片可能有点大,所以考虑用缩略图来实现. 也就是在查询出来一个相冊图片  ,一页显示几十张,这几十张用缩略图来显示,看相信情况的时 ...

  9. 第3章 抽象工厂模式(Abstract Factory)

    原文 第3章 抽象工厂模式(Abstract Factory) 场景我们的系统要同时支持两个数据库  SqlServer 跟Oracle数据库  并且不同的环境要进行随时切换. 看下面的代码: 1 2 ...

  10. AJAX 怎样在一个UpDatePanel中刷新另一个updatePanel

    原文:AJAX 怎样在一个UpDatePanel中刷新另一个updatePanel 在页面上(.aspx)<asp:UpdatePanel ID="MyID1" runat= ...