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'