solr後臺操作Documents之增刪改查
偶爾會用到solr後臺操作一些數據,比如測試等一些情況。但具體用的時候可能會忘記,或者搜的時候結果不全,在此略詳細的記一下。
1.添加
{"id":6,"title":"change.me"}
結果:
說明:id為主鍵
2.更新
{"id":6,"title":{"set":"原子更新"}}
結果:
說明:更新過程是先刪除,再添加
3.刪除
刪除和添加數據不同,內容是一個條件語句,所以要用xml形式
<delete><query>id:6</query></delete>
<commit/>
結果:
4.補充
如果添加的數據裏有字段是schema裏沒有的會報錯
{"id":7,"titletitle":"雙份更強力"} 報錯:"msg": "ERROR: [doc=7] unknown field ‘titletitle‘",
同理更新的數據裏有字段是schema裏沒有的也會報錯。
如果要按時間刪除,語句:
<delete><query>update_time:[0 TO 1554100200]</query></delete>
<commit/>
刪除update_time(更新時間)小於1554100200的所有數據,如果update_time不存在,不會報錯,但沒有效果。
最後補充:在工作中遇到一種添加數據情況出錯情況,如下
Bad Request\n\n\n\nrequest: http://10.200.3.66:8983/solr/req_all_shard1_replica3/update?update.chain=add-unknown-fields-to-the-schema&update.distrib=TOLEADER&distrib.from=http%3A%2F%2F10.200.3.67%3A8983%2Fsolr%2Freq_all_shard1_replica4%2F&wt=javabin&version=2
情況:只有在這一個solr上發現這個問題,其它solr都是正常的,它這個報錯也是報的不清不楚。思索良久之後發現了問題所在
這個solr裏的schema字段中required="true"必傳字段有兩個,少傳一個就會報錯,淚牛滿面。
2019年4月16日
solr後臺操作Documents之增刪改查