zoukankan      html  css  js  c++  java
  • (五) solr 索引数据导入:csv格式

    有时候我们有一些通过SQL导出的csv格式的文件如果需要导入到slor,可以采用以下的方法

    首先假定我们的schema.xml如下所示:

    <field name="id" type="string" stored="true" indexed="true"/>
    <field name="name" type="string" stored="true" indexed="true"/>
    <field name="isbn" type="string" stored="true" indexed="true"/>
    <field name="description" type="text" stored="true" indexed="true"/>

    我们的csv(books.csv)文件的内容如下:

    id;name;isbn;description;publish_date
    1;Solr cookbook;ABC123456;"Solr Cookbook";2011-06
    2;Some book 1;JHDS871281;"Some book";2010-01
    3;Some book 2;9182KSC98;"Another book";2010-02

    为了能够将上面的csv数据正确的导入,我们需要对solrconfig.xml文件进行如下修改:

    <requestHandler name="/update/csv" class="solr.CSVRequestHandler" startup="lazy">
    <lst name="defaults">
       <str name="separator">;</str>
       <str name="header">true</str>
       <str name="skip">publish_date</str>
       <str name="encapsulator">"</str>
    </lst>
    </requestHandler>

    说明:

    startup="lazy":通过该参数告诉solr在第一次添加时才实例化这个更新处理程序

    <str name="separator">;</str> : 通过该参数告诉solr 字段之间是通过“;”分隔

    <str name="header">true</str>:通过该参数告诉solr在数据项之前含有头信息

    <str name="skip">publish_date</str> :通过该参数告诉solr,publish_date 这列数据需要忽略掉

    <str name="encapsulator">"</str>:通过该参数告诉solr数据项是通过双引号(")进行封装的

    设置完毕,重启solr,并提交数据:

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


    小提示:

    封装好的数据项(此处为双引号),也可以进行拆分,如果过我们将name 字段设为多值,那么在requestHandler里面做一个小的调整,可以对如下文档进行处理:

    id;name;isbn;description;publish_date
    1;"Solr cookbook;New solr cookbook";ABC123456;"Solr Cookbook";2011-06

    在 requestHandler里再添加一项:<str name="split">true</str>

    这样设置之后,solr里面会添加一条id为1,name 字段有 Solr cookbook、New solr cookbook 两个值

  • 相关阅读:
    Java13新特性 -- 重新实现旧版套接字API
    Java13新特性 -- switch表达式动态CDS档案(动态类数据共享归档)
    Java13新特性 -- 文本块
    Java13新特性 -- switch表达式
    Java12新特性 -- 其他新增,移除,废弃项
    Java12新特性 -- 增强G1,自动返回未用堆内存给操作系统
    Java12新特性 -- 可中断的 G1 Mixed GC
    Java12新特性 -- 默认生成类数据共享(CDS)归档文件
    Java12新特性 -- 只保留一个 AArch64 实现
    python使用requests发送text/xml报文数据
  • 原文地址:https://www.cnblogs.com/xiazh/p/2545080.html
Copyright © 2011-2022 走看看