`
韩悠悠
  • 浏览: 839983 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

使用cvs更新solr索引

    博客分类:
  • solr
 
阅读更多

 

使用cvs更新solr索引

 

Solr接受cvs的格式,进行索引。并且支持multi-valued你也可能在语法感兴趣的基于XML更新指令。

 

 

要求

 

Solr1.2是最早支持cvs格式更新索引的版本。

 

CVSrequest handler需要在solrconfig.xml中配置,默认已经在solrconfig.xml的配置文件中存在了。

 

  <!-- CSV update handler, loaded on demand -->

  <requestHandler name="/update/csv" class="solr.CSVRequestHandler" startup="lazy">

  </requestHandler>

 

solr4.0中,CVS被用在标准的UpdateRequestHandler中。

 

  <requestHandler name="/update" class="solr.UpdateRequestHandler"/>

 

请注意,需要包括的内容类型:Content-type:application/csv 或则Content-type:text/csv

 

 

上传CSV文件的方法

 

CVS是通过/solr/update/csv 将文件上传到solr服务器。

 

 

例子

 

有一个样例CSV文件的例子/ exampledocs / books.csv可以用来添加文件到Solr服务器实例。

 

例子使用HTTP-POST的方式通过网络将CVS文件发送到solr服务器。

 

cd example/exampledocs
curl http://localhost:8983/solr/update/csv --data-binary @books.csv -H 'Content-type:text/plain; charset=utf-8'

 

上传一个本地CSV文件可以比在网络上通过HTTP发送更有效。此方法工作,必须远程流是启用的。看到xml下面的行,改变它的enableremotestreaming =“true”,并重新启动Solr

 

  <requestParsers enableRemoteStreaming="false" multipartUploadLimitInKB="2048" />

 

以下的请求会导致Solr直接读取输入文件:

 

curl http://localhost:8983/solr/update/csv?stream.file=exampledocs/books.csv&stream.contentType=text/plain;charset=utf-8
#NOTE: The full path, or a path relative to the CWD of the running solr server must be used.

 

 

参数

 

一些参数可以在每一个领域的基础上通过 f.<fieldname>.param=value

 

例如:CSV文件有多值字段(S)是由不同的分离器分离(S),然后他们可以分泰德基于下列额外的参数传递到 f.<fieldname>.split=true&f.<fieldname>.separator=<separator>或其他方式你可以有多值的域部分相同的CSV不同分离器及可更新,Solr索引基于以上语法。

 

分离器

 

指定作为字段分隔符的字符。默认是分离器=

 

header

 

如果第一行的CSV输入包含字段或列名称。默认的header=true如果字段名的参数是不存在的,这些字段添加文件的索引中也会被使用。

fieldnames

 

指定要添加文件时使用Solr索引以逗号分隔的字段名列表。如果CSV输入已经有一个标题,名称指定此参数将覆盖。

 

例如:fieldnames=id,name,category

 

skip

 

一个以逗号分隔的字段名列表输入中跳过。另一个跳过的方法是指定它的名字作为字段名长度为一零的字符串。

 

例子:

 

fieldnames=id,name,category&skip=name

 

跳过name字段,相当于

 

fieldnames=id,,category

 

skipLines

 

指定要丢弃CSV数据开始之前输入流中的行数(包括标题,如果存在的话)。默认是skiplines = 0

 

trim

 

如果true删除前导和尾随空白值。CSV分析已经忽略前导空白默认情况下,但可能有结尾的空格,或可能有空格,被引用,因此不能删除。这可能是指定的全局,或在每一个领域的基础。默认的是trim=false

 

 

encapsulator

 

字符选择用来包围值保存如CSV分隔或空白字符,本标准的CSV格式处理封装器本身出现在一个封装的价值倍增的封装器。

 

在封装值引号CSV示例:

 

100,"this is a ""quoted"" string inside an encapsulated value"

 

默认的 encapsulator="

 

 

keepEmpty

 

指定默认的index为空的值值。这可能是指定的全局,或在每一个领域的基础。默认的是keepempty = false

 

 

literal

 

所有文件添加固定的字段名称/值。

 

例如:添加一个数据源字段值等于每个文档的索引从CSV产品

 

literal.datasource=products

 

 

map

 

指定一个值与另一个之间的映射。在结肠的LHS的字符串将在右边的字符串替换。此参数可以在每一个领域的基础上在全局或指定。

 

例如:在每一个地方使用Absolutely替换true

 

map=Absolutely:true

 

例如:删除在字段foo中包括RemoveMe的值

 

f.foo.map=RemoveMe:&f.foo.keepEmpty=false

 

split

 

如果是true,该字段值使用另一个CSV解析器被分隔成多个值。CSV解析规则如分离器和封装器,可以在指定参数。

例如:在下面的输入

 

id,tags
101,"movie,spiderman,action"

为了索引成3个索引标签,并且solrmulti-valued 字段为tags,使用

 

f.tags.split=true

例如:以下有标签领域的空间分离和封装器输入单引号

 

id,tags
101,movie 'spider man' action

 

索引3个单独的标签为多值字段称为“tags”方案,使用

 

f.tags.split=true&f.tags.separator=%20&f.tags.encapsulator='

 

任何分裂目标Solr领域应该多值。

 

 

rowid

 

如果不为空,该文件在传入的参数名称字段名称应增加和当前行/ rowid添加新字段的值。如果您的CSV没有唯一的ID,使用cvs的行号也是可以的。如果你只是想指数在正是在原始的CSV文件行来自也有用。

 

例如:

 

curl "http://localhost:8983/solr/update?rowid=id" --data-binary @1987.csv -H 'Content-type:application/csv; charset=utf-8'

 

 

rowidOffset

 

在与rowid参数一起,ROWID被添加到field之前,这个整数将被添加到ROWID

 

 

overwrite

 

如果ture(默认的是true),检查并覆盖重复的文件,基于solrschema中定义的唯一ID,如果你知道你的索引文件不包含任何副本,然后你想相当大的速度,设置overwrite=false

 

commit

 

提交更改后在这一要求所有记录都被索引。默认是commit=false以避免频繁的潜在性能的影响有。

Disadvantages

 

有没有办法提供文档或字段索引时提高CSV格式,但是许多指标不利用这一特征。因为updatecsv处理函数在一个较低的水平比dataimporthandlerDIH),内置的功能,但提供了诸如变压器,entityprocessors和进口的命令不可用时,使用updatecsv也就是说,额外的考虑,应在CSV文件提供的数据格式以及它如何被你的Solr schema充满。

 

不像DIH,没有一个可查询的方式在执行后知道状态。

 

Tab-delimited importing

 

制表符分隔的导入

 

不要让格式的名字愚弄你,该程序可以加载您的制表符分隔的文件,甚至把斜杠进行转义而不是CSV封装。

 

例如,一个可以把MySQL表制表符分隔文件

 

SELECT * INTO OUTFILE '/tmp/result.text' FROM mytable;

 

此文件可以通过设置隔板选项卡导入Solr(占09)和逃避反斜杠(% 5C

 

 

curl 'http://localhost:8983/solr/update/csv?commit=true&separator=%09&escape=\&stream.file=/tmp/result.text'

 

 

参考网址:

 

http://wiki.apache.org/solr/UpdateCSV

 

 

 

 

 

分享到:
评论

相关推荐

    Eclipse中使用CVS

    【Eclipse 中使用 CVS】知识点详解 Eclipse是一款广受欢迎的开源Java集成开发环境,由IBM推出并持续发展,成为了WebSphere家族的核心组件。对于个人开发者而言,Eclipse以其强大的功能和灵活性吸引了大量用户。在...

    Eclipse下使用CVS

    ### Eclipse 下使用 CVS 的知识点详解 #### 一、Eclipse 和资源库集成的基本原则 - **基本原则概述**:Eclipse 设计之初便考虑到了软件开发过程中各领域之间的紧密联系,因此其集成环境支持多种资源库服务,这不仅...

    CVS 使用说明,教你如何使用cvs下载

    ### CVS使用说明与下载教程详解 CVS(Concurrent Versions System)是一种开源版本控制系统,用于管理软件项目在开发过程中的源代码版本控制。它能够跟踪每个文件的更改历史,允许团队成员并行工作,同时避免文件...

    在Eclipse中配置和使用CVS

    "Eclipse 中配置和使用 CVS" CVS 是一个 C/S 系统,多个开发人员通过一个中心版本控制系统来记录文件版本,从而达到保证文件同步的目的。在 Eclipse 中,CVS 配置和使用非常重要,因为 Eclipse 自带的 repository ...

    在eclipse中安装和使用cvs

    本课件介绍了在eclipse开发环境下安装和使用cvs插件的方法。cvs用于联合开发管理,在共同开发一个工程时使用cvs可以保证小组成员之间的协作和同步。

    如何使用CVS即cvs使用说明

    2. 更新代码:在工作目录中,使用`cvs update`命令获取他人最新的修改。 五、提交与合并 1. 修改文件后,使用`cvs add`命令添加新文件,`cvs remove`删除不再需要的文件。 2. 提交更改:使用`cvs commit`命令将更改...

    MyEclipse使用CVS

    【MyEclipse使用CVS】 MyEclipse是一款强大的Java集成开发环境,它集成了许多功能,包括对版本控制系统的支持,如CVS(Concurrent Versions System)。CVS是一种广泛使用的开源版本控制系统,允许开发者协作开发...

    Eclipse中CVS使用

    【Eclipse中CVS使用详解】 CVS,全称为Concurrent Versions System,是一种广泛使用的开源版本控制系统。在软件开发过程中,版本控制对于团队协作至关重要,它可以帮助开发者追踪代码的修改历史,协同工作,并确保...

    cvs的使用,给予一定的帮助

    - 使用场景:大约20%的工作时间用于代码提交与更新,而80%的时间则花费在代码的编写、测试等阶段,因此CVS的操作主要集中在代码的更新与提交上。 #### 二、CVS基本命令与配置 **设置CVS环境变量**:在使用CVS之前...

    CVS 使用手册 教程

    4. **更新**:使用`cvs update`命令将仓库的最新更改同步到本地工作拷贝。 5. **提交**:使用`cvs commit`命令将本地更改提交到仓库,需要提供提交消息。 6. **冲突解决**:当多人修改同一文件时,可能会发生冲突...

    cvs最简单的使用方法

    CVS的最简单使用方法主要包括安装、创建仓库、导入项目、添加和提交文件、获取项目副本、更新和同步、以及分支和合并操作。虽然这些只是CVS的基础操作,但对于理解和使用这个强大的版本控制系统来说已经足够。随着对...

    CVS使用注意事项

    ### CVS使用注意事项详解 #### 一、概述 CVS(Concurrent Versions System)是一种源代码版本控制系统,主要用于软件开发过程中的版本控制管理。CVS能够有效地管理多个开发者的协同工作,确保代码的一致性和完整性...

    eclipse中安装配置和使用CVS

    在本文中,我们将深入探讨如何在Eclipse集成开发环境中安装、配置和使用CVS(Concurrent Versions System),这是一个流行的版本控制系统,用于管理软件项目。Eclipse作为一款强大的Java IDE,支持多种版本控制系统...

    CVS教学电子书如何安装CVS,CVS使用

    4. **更新与提交**:在本地修改代码后,使用`cvs update`来获取他人所做的更改,并用`cvs commit`提交自己的工作,这会将更改推送到服务器。 5. **冲突解决**:当两个或更多人同时修改同一文件时,CVS会识别冲突并...

    eclipse +cvs 的基本使用方法

    Eclipse是一款广泛使用的Java集成开发环境(IDE),而CVS(Concurrent Versions System)是一种版本控制系统,用于管理软件项目的源代码。将Eclipse与CVS结合使用,开发者可以在Eclipse中方便地进行版本控制操作,如...

    cvs server安装与Eclipse简单使用

    4. **版本控制操作**:现在,你可以开始使用CVS的基本操作,如"Add to Version Control"(添加文件到版本库)、"Commit"(提交更改)、"Update"(更新到最新版本)等。 5. **协同工作**:当团队成员对同一文件进行...

    CVS使用手册(cvs使用详解)

    - **同步更新**:开发者定期运行`cvs update`,获取他人提交的最新变化。 - **冲突处理**:当多人同时修改同一部分代码时,可能出现冲突,需要手动解决。 4. **CVS的分支与标签** - **分支**:CVS支持创建分支,...

    安装使用CVS

    ### 安装使用CVS #### 一、CVS简介 CVS(Concurrent Versions System)是一种开源的版本控制系统,用于管理和记录软件开发过程中的源代码版本变更历史。CVS支持多个用户同时对同一个项目进行修改,并能有效地解决...

Global site tag (gtag.js) - Google Analytics