一、背景与动机
JSON Request API是由noggit作者(同时也Solr Committer Leader)在Solr.5.3
带来新特性,意在改善Solr原来复杂且又丑陋查询语法。
注:JSON Request API跟Solr API v2并不是一回事,JSON Request API是一种新型Solr Query DSL。API v2是基于Restful API实现的内部接口,主要用于SolrJ和AdminUI与Solr Server交互的API。而JSON Request API显然是基于JSON实现查询语言,并不是API。
不管Request API还是API v2都是Solr正在向ElasticSearch靠近的表现。
以前想写简单查询其实也没有很复杂,无非就是写个q参数
,然后指定一下rows
和sort
嘛,但是对于用Solr来做统计相关工作的同学,还是觉得挺烦的。因为它
- 冗长,没有结构,容易出错,难于校验和debug。
f.facet_field_name.facet.range.start=5
- 没有数据类型,整个世界都是
String
,缺乏结构,不便于编程 - 对服务端而言,解释得也相当复杂。
总之,就是有一系列问题。所以在Solr5.3
,Yonik小哥带来这个。当然,我们Solr的JSON解析器用的就是Noggit——JSON解析工具。
Noggit是一款非常轻巧和高效,也非常新颖的JSON解析器。她是流式JSON解释器,同时她还有一些扩展JSON格式,使得她的结构更加简洁,优雅。想了解她更牛比之处请阅读noggit项目首页。
这就是JSON Request API出现的背景,当然动机就是针对这些痛点进行优化,一方面有利于推广Solr的搜索统计功能;二方面优化搜索解析效率、优化使用体验。
二、用法
在过去,我写Blog从不写用法一类的Blog,主