现在的位置: 首页 > 开源搜索引擎 > 正文
全文搜索服务器 Solr—xml格式索引数据导入篇
2014年06月03日 开源搜索引擎 ⁄ 共 1281字 评论数 2 ⁄ 被围观 2,057 views+

xml 是最常用的数据索引格式,不仅可以索引数据,还可以对文档与字段进行增强,从而改变它们的重要程度。

下面就是具体的实现方式:

schema.xml的字段配置部分如下:

<field name="id" type="string" stored="true" indexed="true"/>
<field name="title" type="string" stored="true" indexed="true" omitNorms="false"/>

以下是我们将要提交到solr作为索引的xml文档:books.xml

<add overwrite="true" commitWithin="10000">
<doc>
  <field name="id">F8V7067-APL-KIT</field>
  <field name="title" boost="2">Belkin Mobile Power Cord for iPod w/ Dock</field>
</doc>
<doc boost="2.5">
  <field name="id">IW-02</field>
  <field name="title">iPod &amp; iPod Mini USB 2.0 Cable</field>
</doc>
</add>

说明:

overwrite="true" :告诉solr在做索引的时候,如果文档已经存在,就用xml中的文档进行替换

commitWithin="10000" :告诉solr 在做索引的时候,每个10000(10s)毫秒,做一次文档提交

boost:用来指明文档或者字段的重要程度,默认值为:1.0,在这个示例中,第二个文档的boost值为2.5,表示比其它两个文档更重要

omitNorms="false":这个属性值表示是否忽略字段的的规范,此处设为否。如果要在做索引的时候指定字段的重要程度,必须使用字段的长度规范。如果设置为true,那么这些字段在索引时不会增加重要程度

 

如果在linux下,我们可以使用下面的方式提交文档

# 方法一
curl http://localhost:8080/solr/update --data-binary @books.xml -H 'Content-type:text/xml; charset=utf-8'
# 方法二
java -Durl=http://localhost:8080/solr/update -Dcommit=yes -jar post.jar books.xml

 

性能测试:

在前面连接数据库建立全量索引的速度达到7000个/s。用xml的形式,速度可以达到1w个/s。速度相对来说还是比数据库要快。

缺陷:

xml文档对格式的要求比较高,<、>、&、"、'这些符号都会破坏xml的文档的格式。所以需要转换成对应的实体字符。

sed -i 's/</\&lt;/g;s/>/\&gt;/g;s/\&/\&amp;/g;s/\"/\&quot;/g;s/'\''/\&apos;/g;' $filename

但是对于索引列中出现的特殊字符^H,这种没有找到办法过滤掉。这种字符的存在会导致post.jar执行失败。

原创文章,转载请注明: 转载自成长的企鹅

本文链接地址: 全文搜索服务器 Solr—xml格式索引数据导入篇

关于我:成长的企鹅简介

目前有 2 条留言 其中:访客:0 条, 博主:1 条 引用: 1


  1. 管理员
    成长的企鹅 : 2015年11月23日10:46:21 @回复 回复

    谢谢支持

查看来自外部的引用: 1

给我留言

留言无头像?


×