Solr 新增、更新、删除索引
solr-admin新增索引
[索引中无则新增,有则更新]
第一种方式:在doc标签和field标签中增加权重(boost),增加权重后,可以在搜索的时候做权重过滤。
OR
删除所有索引
|
第二种方式:solr-用url,使用 stream 相关参数删除数据:
如:
根据id删除数据
http://localhost:8080/solr/update/?stream.body=
<delete><id>id值</id></delete>&stream.contentType=text/xml;charset=utf-8&commit=true
根据查询参数条件删除数据
http://localhost:8080/solr/update/?stream.body=
<delete><query>参数</query></delete>&stream.contentType=text/xml;charset=utf-8&commit=true
stream 相关参数:
stream.file=(服务器本地文件);
stream.url 分别指到你的删除文本,这里是直接字符串内容用 stream.body 参数。
commit 参数是指提交,提交了才能看到删除效果。
删除指令有两种,一是:用 <id></id> 包装;二是:<query></query> 包装。指令都很明显,一个是 id 值(是在 schema.xml 的 uniqueKey 所指字段的值,而不是索引内部的 docId);query 值是查询串,如:title:"solr lucene"。
第三种方式:curl 方式:
curl http://localhost:8080/update --data-binary "<delete><query>title:abc</query></delete>" -H 'Content- type :text/xml; charset=utf-8'
#删除完后,要提交
curl http://localhost:8080/update --data-binary "<commit/>" -H 'Content- type:text/xml; charset=utf-8'
第四种方式:用自带的 post.jar,在 apache-solr-XXX/example/exampledocs 目录下:
java -Ddata=args -jar post.jar "<delete><id>42</id></delete>"
#怎么使用 post.jar 查看帮助
java -jar post.jar -help
小结:
方式1就是直接可以告诉服务器从那些地方去删除的数据内容;
方式2、3原理一样,直接 POST xml 数据过去;