`
flysnowxf
  • 浏览: 578811 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

solr server不更新EmbeddedSolrServer提交的数据?

阅读更多
如题,使用EmbeddedSolrServer提交的数据,在solr server查询不出来,只有重启solr server之后才能查询到。查询互联网无果之后,我忽然想到使用CommonsHttpSolrServer来commit()一下,结果大快人心,问题解决。
为什么要使用EmbeddedSolrServer呢?据某些资料介绍,如果solr server和client在同一台机器上,使用EmbeddedSolrServer(直接通过lucene写磁盘)比使用CommonsHttpSolrServer(http访问)要快50%。

下面以简单的代码说明这个问题。
首先是EmbeddedSolrServer的初始化,和wiki的一样,很简单:
System.setProperty("solr.solr.home", "");
CoreContainer.Initializer initializer = new CoreContainer.Initializer();
CoreContainer coreContainer = initializer.initialize();
EmbeddedSolrServer server = new EmbeddedSolrServer(coreContainer, "");

CommonsHttpSolrServer的初始化也和wiki的一样。
提交代码:
embeddedSolrServer.add(docList);
embeddedSolrServer.commit();
commonsHttpSolrServer.commit();// 如果没有http的commit,solr server不会查询到刚才提交的数据
分享到:
评论
4 楼 flysnowxf 2011-09-13  
byj197811 写道
为啥要提交两次呢?

http和embedded对同一个索引文件,分别使用各自的维护机制。

比如http更新了索引,并且commit了,但embedded是不知道的,这时embedded还是使用旧的索引(缓存)。同理embedded更新了,http也不知道。commit就是让其重新获取到最新的索引文件。

http和embedded都使用的案例问题:
更新使用data import的方法(走的是http),而查询使用embedded。如果只是这样,embedded查询到的一直是旧数据。解决的方式就data import的时候,通知embedded去commit一下。
3 楼 byj197811 2011-03-14  
为啥要提交两次呢?
2 楼 flysnowxf 2010-12-15  
embeddedSolrServer.commit()的同时,再使用一下commonsHttpSolrServer.commit()
如果你遇到了这个问题,看到这里应该能理解了吧?
1 楼 l514941630 2010-12-15  
能说的详细点不?

相关推荐

    Solr定时更新Solr定时更新

    而定时更新功能是Solr的一个重要特性,它允许用户定期地、自动地从数据源导入新数据或者更新已有数据,以保持索引与实际数据的一致性。 在Solr中,定时更新主要通过DataImportHandler(DIH)实现,这是一个用于将...

    Solr的原子更新

    利用python的pycurl对Solr进行原子更新操作

    solr增量导入更新索引包

    增量导入更新索引包是Solr中的一项重要功能,它允许系统仅处理自上次完整索引以来发生改变的数据,从而大大提升了效率并降低了资源消耗。下面将详细阐述Solr增量更新的相关知识点。 1. **Solr的索引机制** Solr...

    solr定时增量更新jar包1.4

    "solr定时增量更新jar包1.4"是专门为Solr设计的一个组件,它允许用户设置定时任务来自动检测和导入新的或者修改过的数据,从而保持索引与数据库或其他数据源的一致性。 这个组件主要依赖于`apache-solr-...

    solr 数据迁移工具

    使用多线程方式 通过solrj 接口向solr新增索引信息

    solr增量更新架包apache-solr-dataimportscheduler.jar

    增量更新是Solr的一个关键特性,它允许系统仅处理自上次完整索引以来发生更改的数据,从而提高了性能并降低了资源消耗。"apache-solr-dataimportscheduler.jar" 是一个专门为Solr设计的扩展包,用于实现自动化的数据...

    Solr数据库插入(全量和增量)索引

    Delta-importer 是 Solr 中的一个工具,用于将新添加或更新的数据从外部数据源导入 Solr 索引库中。使用 Delta-importer,我们可以将新添加或更新的数据从 Oracle 数据库中提取出来,然后将其插入 Solr 索引库中。 ...

    solr6定时增量更新

    solr6定时增量更新jar包

    solr测试数据,数据文件

    solr测试数据,数据文件

    solr-dataimport-scheduler.jar 可使用于solr7.x版本

    Solr 数据导入调度器(solr-dataimport-scheduler.jar)是一个专门为Apache Solr 7.x版本设计的组件,用于实现数据的定期索引更新。在理解这个知识点之前,我们需要先了解Solr的基本概念以及数据导入处理...

    Hbase同步数据到Solr的方案

    HBase 和 Solr 都是大数据处理中的关键组件。HBase 是一个分布式的、面向列的NoSQL数据库,适合存储大规模结构化数据。而Solr 是一个流行的全文搜索引擎,提供高效的全文检索、命中高亮、拼写检查等特性。将HBase的...

    SOLR的学习资料

    3. **改(Update)**:更新文档通常涉及先删除再添加的过程,因为SOLR不直接支持部分字段更新。但可以通过设置`update.chain`参数使用Update Request Processor实现特定场景的更新。 4. **查(Query)**:SOLR提供...

    apache-atlas-2.1.0-server.tar.gz 不含hbase和solr

    在Apache Atlas 2.1.0版本中,服务器组件的压缩包`apache-atlas-2.1.0-server.tar.gz`提供了一个核心的服务框架,用于构建和维护数据治理解决方案,但值得注意的是,这个版本不含HBase和Solr这两个关键组件。...

    Apache Solr 3 Enterprise Search Server 部分中文翻译

    使用Solr的更新API,可以向索引添加、删除或更新文档。批量导入功能(如DataImportHandler)允许高效地处理大量数据。索引优化和重建也是索引生命周期中的重要环节,它们可以提高搜索性能和确保数据一致性。 4. **...

    solr定时增量更新索引所需jar包

    solr定时增量更新索引所需jar包包括:solr-dataimporthandler-4.0.0.jar、solr-dataimportscheduler.jar(6.x适用)、solr-dataimporthandler-extras-4.0.0.jar。

    solr 定时增量更新jar包

    在企业级应用中,数据的实时性和准确性是至关重要的,因此,Solr提供了数据导入工具(DataImportHandler, DIH)来帮助用户从关系型数据库或其他数据源进行数据导入,并支持增量更新。"solr 定时增量更新jar包"便是为了...

    src.rar_solr

    4. 创建核心(Core)以准备处理数据,如 `bin/solr create -c my_core`,这里的 "my_core" 是核心的名称。 二、Solr 查询 1. 简单查询:通过 `http://localhost:8983/solr/my_core/select?q=关键词` 进行搜索,...

    solr in action配套代码和数据

    3. **Java客户端代码**:可能是Java API的示例,展示了如何与Solr服务器进行交互,如添加、更新和删除文档,执行查询,或者处理结果。 4. **脚本**:可能包括用于自动化任务的shell脚本或Python脚本,如批量导入...

    Solr 学习笔记(五)-Solr扩展之分布式索引实例

    在本篇Solr学习笔记中,我们将探讨Solr的分布式索引功能,这对于处理大量数据和实现高可用性至关重要。Solr的分布式索引能力允许我们跨越多个节点分布和处理索引过程,从而提高索引速度和查询性能。在实际应用中,这...

    solr 全量数据迁移

    5. **更新配置**:如果源和目标Solr实例的配置有差异,需要确保目标实例的配置与源实例一致,以避免搜索结果不准确或无法正常运行。 6. **重启目标Solr服务**:最后,重启目标Solr服务以应用新的数据和配置。 注意...

Global site tag (gtag.js) - Google Analytics