文档章节

Solr查询语言 JSON Request API

大大梁
 大大梁
发布于 2017/06/19 13:41
字数 658
阅读 44
收藏 0

阅读全文

 

一、背景与动机

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新版本查询API,是基于Restful API实现的。当然JSON Request API显然是基于JSON实现的咯。
不过Request API还是API v2都是Solr学习ElasticSearch靠近的表现。

以前想写简单查询其实也没有很复杂,就是写个q参数,然后指定一下rowssort嘛,但是对于用Solr来做统计相关工作的同学,还是觉得挺烦的。因为它
1. 冗长,没有结构,容易出错,难于校验和debug。f.facet_field_name.facet.range.start=5
2. 没有数据类型,整个世界都是String,缺乏结构,不便于编程
3. 对服务端而言,解释得也相当复杂。

总之,就是有一系列问题。所以在Solr5.3,Yonik小哥带来这个。当然,我们Solr的JSON解析器用的就是Noggit。

Noggit是非常牛比,非常最效,非常新颖的JSON解析器。她是流式JSON解释器,同时她还**扩展JSON格式**,使得她的结构更加简洁,优雅。想了解她更牛比之处请阅读noggit项目首页。

这就是JSON Request API出现的背景,当然动机就是针对这些痛点进行优化,一方面有利于推广Solr的搜索统计功能;二方面优化搜索解析效率、优化使用体验。

二、用法

在过去,我写Blog从不写用法一类的Blog。主要是这一类文章写的非常多,这次为什么要写呢,原因有二。一,Solr6.6正式推出这套API;二,貌似并没多少人关注她。这么好的特征,不能让她一直默默无闻。

虽然Noggit已经非常简洁好看,但是她在浏览器的地址栏里编辑还非常不好方便的。但我依然她觉得非常好,特别在她提供一系列非常好用的Facet Statistics & Aggregations Function。之前没有她的时候,我们要写这些查询,非常苦痛的,除了可能需要用到stats查询之外,还很有用可能需要用到非常用的Query Function。(这也可能就是Solr一直很搜索的原因吧。)

因此,非常有必要来推广她,不能让这个世界都是ElasticSearch

好了,回归正题,先看来几个Query。

Query #1. 直接POST

 

阅读全文

本文转载自:

大大梁
粉丝 0
博文 225
码字总数 0
作品 0
私信 提问
Solr查询语言 JSON Request API

一、背景与动机 JSON Request API是由noggit作者(同时也Solr Committer Leader)在带来新特性,意在改善Solr原来复杂且又丑陋查询语法。 注:JSON Request API与Solr API v2并不是一回来,J...

大明搜索
2017/06/28
484
0
Solr搜索统计 JSON Faceting API

一、背景 我是您不知道的统计和聚合,我很漂亮、也很简洁,我是结构化,有些迷人的新查询语法。您可以不知道和,但你不应该不知道我,我是,出身于Solr5。 solr 5.3的时候完全重写了Solr查询...

大明搜索
2017/06/26
370
0
Solr学习总结(一)Solr介绍

  最近一直在搞Solr的问题,研究Solr 的优化,搜索引擎的bug修改等,这几天终于有时间,闲下来总结分享,以便大家参考,与大家一起来共同学习。   Solr是一个基于Lucene的全文搜索引擎,同...

章为忠
2015/12/10
0
0
Solr搜索引擎

1、solr的下载地址为http://pan.baidu.com/s/1kUAJYmF 2、solr的安装 solr下载完毕后解压开,使用前需要配置jdk1.8的环境变量 选中bin目录下的startup.bat启动就可以。 3、solr的使用 solr访...

0了凡0
2016/09/11
28
0
搜索引擎(Solr-索引详解2)

学习目标 1.掌握SolrJ的使用。 2.掌握索引API 3.掌握结构化数据导入DIH SolrJ介绍 SolrJ是什么? Solr提供的用于JAVA应用中访问solr服务API的客户端jar。在我们的应用中引入solrj: SolrJ的核...

这很耳东先生
02/22
32
0

没有更多内容

加载失败,请刷新页面

加载更多

c语言实现Sqlite3的创建db和增删改查db操作

SQLite,是一款轻型的数据库,而且目前已经在很多嵌入式产品中使用了它,它占用资源非常的低,在嵌入式设备中使用广泛,现在准备学习一下sqlite3的使用方法并写一个测试demo,后面在项目智能...

jorin_zou
13分钟前
2
0
【2019年8月版本】OCP 071认证考试最新版本的考试原题-第2题

choose three Which three are true about the CREATE TABLE command? A) It can include the CREATE...INDEX statement for creating an index to enforce the primary key constraint. B) ......

oschina_5359
16分钟前
3
0
如何在二维码中循环批量插入图片

现在二维码种类比较多,为了突出二维码的个性及吸引客户,很多朋友都喜欢在二维码上插入图片。想要每个二维码都与众不同,但是有的时候需要批量插入图片数量有限,如果制作的二维码比较多的话...

中琅软件
17分钟前
4
0
LTR那点事—AUC及其与线上点击率的关联详解

LTR(Learning To Rank)学习排序是一种监督学习(SupervisedLearning)的排序方法,现已经广泛应用于信息索引,内容推荐,自然语言处理等多个领域。以推荐系统为例,推荐一般使用多个子策略...

达观数据
17分钟前
3
0
IntelliJ 如何显示代码的代码 docs

希望能够在 IntelliJ 代码上面显示方法的 docs。 如何进行显示? 你可以使用 Ctrl + Q 这个快捷键来查看方法的 Docs。 https://blog.ossez.com/archives/3061...

honeymoose
20分钟前
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部