xml 是最常用的数据索引格式,不仅可以索引数据,还可以对文档与字段进行增强,从而改变它们的重要程度。
下面就是具体的实现方式:
schema.xml的字段配置部分如下:
<field name="id" type="string" stored="true" indexed="true"/> <field name="name" type="string" stored="true" indexed="true" omitNorms="false"/> <field name="isbn" type="string" stored="true" indexed="true"/>
以下是我们将要提交到solr作为索引的xml文档:books.xml
<add overwrite="true" commitWithin="10000"> <doc> <field name="id">1</field> <field name="isbn">ABC1234</field> <field name="name" boost="2">Some Book</field> </doc> <doc boost="2.5"> <field name="id">2</field> <field name="isbn">ZYVW9821</field> <field name="name" boost="2">Important Book</field> </doc> <doc> <field name="id">3</field> <field name="isbn">NXJS1234</field> <field name="name" boost="2">Some other book</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:8983/solr/update --data-binary @books.xml -H 'Content-type:text/xml; charset=utf-8'