Index handler
Index handler 索引处理器,是一种Request handler 请求处理器。
solr对外提供http服务,每类服务在solr中都有对应的request handler来接收处理,solr中提供了默认的处理器实现,如有需要,我们也可提供我们的扩展实现,并在conf/solrconfig.xml中进行配置。
在 conf/solrconfig.xml中,requestHandler的配置就像我们在web.xml中配置servlet-mapping(或spring mvc 中配置controller 的requestMap)一样:配置该集合/内核下某个请求地址的处理类。
solrconfig中通过updateHandler元素配置了一个统一的更新请求处理器支持XML、CSV、JSON和javabin更新请求(映射地址为/update),它根据请求提交内容流的内容类型Content-Type将其委托给适当的ContentStreamLoader来解析内容,再进行索引更新。
配置一个requestHandler示例
Xml 格式数据索引更新
请求头中设置 Content-type: application/xml or Content-type: text/xml
添加、替换文档
操作,支持两个可选属性:
- commitWithin:限定在多少毫秒内完成
- overwrite:指定当唯一键已存在时是否覆盖,默认true。
Patrick Eagar Sports 796.35 128 12.40 Summer of the all-rounder 0002166313 1982 Collins ...
删除文档
0002166313 0031745983 subject:sport publisher:penguin
操作,支持两种删除方式:
- 1、根据唯一键
- 2、根据查询
组合操作
0002166313
响应的结果
Status=0表示成功
Qtime是耗时
0 127
提交、优化、回滚操作
commit、optimize 属性说明:
- waitSearcher:默认true,阻塞等待打开一个新的IndexSearcher并注册为主查询searcher,来让提交的改变可见。
- expungeDeletes: (commit only) 默认false,合并删除文档量占比超过10%的段,合并过程中删除这些已删除的文档。
- maxSegments: (optimize only) 默认1,优化时,将段合并为最多多少个段
提交:
![0b2c47cad8a236ad4ca1f66fc85faed5.png](https://i-blog.csdnimg.cn/blog_migrate/945010d72955cdd1fcd10abe1e16a10d.jpeg)
删除:
![4b720373821ae019540dd09cc1a657f9.png](https://i-blog.csdnimg.cn/blog_migrate/56daa2c687c8a5e57a6af80c947797ce.jpeg)
JSON 格式数据索引更新
请求头中设置 Content-Type: application/json or Content-Type: text/json
添加、替换一个文档
{ "id": "1", "title": "Doc 1"}
添加、替换多个文档
[ { "id": "1", "title": "Doc 1" }, { "id": "2", "title": "Doc 2" }]
在json中指定操作
{ "add": { "doc": { "id": "DOC1", "my_field": 2.3, "my_multivalued_field": [ "aaa", "bbb" ] } }, "add": { "commitWithin": 5000, "overwrite": false, "doc": { "f1": "v1", "f1": "v2" } }, "commit": {}, "optimize": { "waitSearcher":false }, "delete": { "id":"ID" }, "delete": { "query":"QUERY" }}
根据唯一键删除的简写方式:
{ "delete":"myid" }
{ "delete":["id1","id2"] }
针对 JSON 格式数据提供的两个专用path
不需要在请求头中设置 Content-Type: application/json or Content-Type: text/json
path: /update/json
path:/update/json/docs 专门用于提交文档