偶尔会用到solr后台操作一些数据,比如测试等一些情况。但具体用的时候可能会忘记,或者搜的时候结果不全,在此略详细的记一下。 1.添加 {"id":6,"title":"change.me"} 结果: 说明:id为主键 2.更新 {"id":6,"title":{"set":"原子更新"}} 结果: 说明:更新过程是先删除,再添加 3.删除 删除和添加数据不同,内容是一个条件语句,所以要用xml形式 <delete><query>id:6</query></delete> 结果:
4.补充 如果添加的数据里有字段是schema里没有的会报错 {"id":7,"titletitle":"双份更强力"} 报错:"msg": "ERROR: [doc=7] unknown field 'titletitle'", 同理更新的数据里有字段是schema里没有的也会报错。 如果要按时间删除,语句: <delete><query>update_time:[0 TO 1554100200]</query></delete> 删除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日 |
|