`
san_yun
  • 浏览: 2652251 次
  • 来自: 杭州
文章分类
社区版块
存档分类
最新评论

三种solr提交(commit)索引的方式

    博客分类:
  • solr
 
阅读更多

 

三种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一般的配置如下:

 

  <updateHandler class="solr.DirectUpdateHandler2">
        <autoCommit>
                 <maxTime>2000</maxTime>
                <openSearcher>false</openSearcher>
        </autoCommit>
        <autoSoftCommit>
                <maxTime>10000</maxTime>
        </autoSoftCommit>
          <updateLog>
               <str name="dir">${solr.shard.data.dir:}</str>
          </updateLog>
     </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);

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

 

分享到:
评论

相关推荐

    solr创建索引并查询

    #### 三、Solr创建索引流程 1. **建立SolrServer连接** - 使用`CommonsHttpSolrServer`类创建Solr服务器连接。 - 设置必要的参数,如URL、超时时间、最大连接数等。 2. **添加文档** - 创建一个...

    solr创建索引的原理及解析

    #### 三、Solr索引创建的XML语法示例 ```xml &lt;field name="id"&gt;222 ``` 此XML片段展示了如何使用`&lt;add&gt;`标签创建一个包含单个字段的新文档。`boost`属性表示该文档的重要性权重。 #### 四、总结 通过对...

    hbase+solr创建二级索引完整操作

    - 配置`solrconfig.xml`文件,主要调整软提交(Soft Commit)和硬提交(Hard Commit)的参数。软提交关乎数据的实时可见性,而硬提交关乎数据的持久化。 5. **创建collection实例并上传配置文件** - 使用命令`...

    solr定时索引

    Solr的定时索引分为增量索引和完整索引两种方式,每种都有其特定的应用场景和优势。 增量索引:增量索引是指只对自上次索引以来发生变化的数据进行索引更新。这种方式适用于数据频繁更新但整体变化不大的情况,可以...

    使用xml更新solr索引

    在Solr中,XML格式是用于向索引添加、更新或修改文档的主要方式。Solr索引是一个存储和检索信息的高效结构,它允许快速搜索和返回结果。XML数据的使用使得索引管理更加灵活和可控。 首先,我们来看如何使用XML来...

    solr4.1安装配置

    在本文中,我们将深入探讨如何在Windows 7 64位环境下安装配置Solr 4.1,并结合IK分词器进行中文处理,以及使用SolrJ进行索引操作。 一、安装配置Solr 4.1 1. **安装JDK**: - 首先,下载并安装JDK 7的64位版本,...

    跟益达学Solr5之批量索引JSON数据

    你可以通过`commitWithin`参数控制索引的提交时间,以确保数据尽快可用。 7. **查询索引**:一旦数据被索引,你就可以通过Solr的Query API执行查询,获取结果。例如,可以搜索包含特定关键词的文档,或者根据某个...

    SOLR的应用教程

    **三、Solr的应用** 3.1 SOLR应用概述 介绍Solr的应用场景和使用流程。 3.2 一个简单的例子 包括Solr Schema设计、构建索引和搜索测试。 3.3 搜索引擎的规划设计 3.3.1 定义业务模型 3.3.2 定制索引服务 3.3.3 ...

    asp.net调用Solr

    SolrNet是一个轻量级的.NET客户端,提供了一种简洁的方式来与Solr服务器交互。你可以通过NuGet包管理器来安装SolrNet,这样可以轻松地将其添加到你的项目中。 安装完SolrNet后,你需要配置Solr服务器的连接信息。这...

    solr教材-PDF版

    - **1.3.2 搜索**:用户提交查询请求后,Solr会解析查询语句,查找相应的索引,并返回匹配的文档列表。 **1.4 源码结构** - **1.4.1 目录结构说明**:Solr项目的目录结构清晰,主要包括src/main/java下的源代码、...

    solr在java中使用总结

    Solr具备高度可配置性和可扩展性,支持通过HTTP请求提交XML文件来生成索引,同时也支持HTTP GET操作进行搜索查询,并能够返回XML格式的结果。 #### 二、Solr的主要特点 1. **高性能:**Solr拥有高效的索引和搜索...

    Solr学习笔记。。

    - 定义索引字段和字段类型,例如`&lt;fieldType&gt;`定义了字段的处理方式,如使用IKAnalyzer的`text_ik`类型。 - 字段定义`&lt;field&gt;`,如`...

    SOLR的学习资料

    4. **实时搜索**:SOLR的实时索引功能允许在不重启服务的情况下更新索引,提高用户体验。 5. **优化索引**:定期进行索引优化可以合并多个段文件,提高搜索效率,但会占用更多磁盘空间。 通过这份学习资料,初学者...

    Solr学习笔记(三)Solr客户端开发实例

    Solr学习笔记(三)——Solr客户端开发实例 在本文中,我们将深入探讨Solr客户端的开发,以便更好地理解如何在实际项目中利用Solr的强大功能。Solr是一款开源的全文搜索引擎,提供了高效的搜索和索引功能。通过Solr...

    solr环境搭建总结一

    3. **提交更改**: 添加或更新文档后,需调用`commit`方法使更改生效,`client.commit();` 4. **查询**: 通过`SolrQuery`构建查询,`SolrQuery query = new SolrQuery("query");`,然后使用`query.set("q", "query")...

    solr新版参考手册(apache-solr-ref-guide-4.4)

    在索引和基本数据操作章节中,手册详细描述了索引过程和基本索引操作,比如提交(commit)、优化(optimize)和回滚(rollback)。这些操作对于管理Solr中的数据集和维持搜索索引的健康状态是非常重要的。对于希望...

    solr开发详解

    - **requestHandler 标签**:定义索引和搜索的访问方式。 #### Solr基本使用 - **索引流程**: - Solr 客户端(如浏览器或 Java 程序)通过 POST 请求向 Solr 服务端发送包含 Field 等信息的 XML 文档,Solr ...

Global site tag (gtag.js) - Google Analytics