solr索引數據更新接口:http://localhost:8080/solr/update
有以下一些操作可以通過update接口完成,只能使用post的形式提交數據。
1、添加索引
確保field已全部在schemal.xml 中定義,日期格式要求的比較奇葩,但必須符合他的格式。此處adaptor,director在schemal.xml中設置了多值屬性(multiValued=true)可以看出此處對應的添加xml格式。
<?xml version="1.0" encoding="utf-8"?> <add> <doc> <field name="clipId">6206</field> <field name="clipName">謝娜和彭宇上演現場版野蠻女友</field> <field name="eName"/> <field name="otherName">謝娜和彭宇上演現場版野蠻女友</field> <field name="story">謝娜和彭宇上演現場版野蠻女友。</field> <field name="scenarist"/> <field name="adaptor">謝娜</field> <field name="adaptor">彭宇</field> <field name="director">馬可</field> <field name="director">彭宇</field> <field name="director">李好</field> <field name="director">李響</field> <field name="kind"/> <field name="area"/> <field name="clicks">3334</field> <field name="releaseDate">2009-08-10T00:00:00Z</field> </doc> </add>
2、刪除索引
刪除單挑索引時,必須指定主鍵值,主鍵也就是你再schemal.xml中<uniqueKey>clipId</uniqueKey>節點定義的。
<?xml version="1.0" encoding="utf-8"?> <delete> <id>unikey</id> </delete>
當然也可以批量刪除索引,只要在<query>節點中定義好查詢語句,solr將刪除所查詢到的所有索引。提交如下數據將清空索引。
<?xml version="1.0" encoding="utf-8"?> <delete> <query>*:*</query> </delete>
提交如下數據,將刪除所有otherName包含“謝娜”的索引
<?xml version="1.0" encoding="utf-8"?> <delete> <query>otherName:謝娜</query> </delete>
3、更新索引
當用戶添加索引后,索引庫是不會馬上更新的(除非已設置自動更新),那么要讓他立即生效的話,提交如下數據即可。
<commit/>
4、重建索引
當索引庫經過多次刪除、插入等操作時,索引庫將產生很多碎片數據,重建索引將提高索引效率,提交如下數據即可。
建議在應用負荷量較小的時間段進行,如凌晨時段。
<optimize/>