`
liangyan9966
  • 浏览: 39753 次
  • 性别: Icon_minigender_2
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

Solr查询语言 JSON Request API

阅读更多
全文阅读http://click.aliyun.com/m/23536/
一、背景与动机
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参数,然后指定一下rows和sort嘛,但是对于用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

原来写法 http://solr.daming.com/solr/daming/select?q=helloWorld
JSON Request API写法 $ curl http://solr.daming.com/solr/daming -d '{ query : "helloWorld" }' 非常清淅,特别是熟悉ElasticSearch的同学们,可谓是ElasticSearch转向Solr的一条桥梁。
query #2. HttpGet Method

JSON Request API作为新版的query api,其实它也是相当成熟了的,功能也相当丰富,也基本兼容旧版API。当是HttpGet是需要一个参数来接收我们新版JSON Request内容的。通过Parameter json={}的方式来接收JSON Request API的查询语句,且新版API与旧版API完全兼容,即是可以一起来描述一个查询请求。

这种情况下,JSON Request API完全就是原来查询语法的一个扩展,即是多出一个叫json的新参数。

$ curl http://localhost:8983/solr/query -d 'json={query:"hero"}&fq=author:brandon'
Query #3 来看一个完整的示例

老实说,JSONS Request API定义真的是非常人性化、贴近自然语言。
全文阅读http://click.aliyun.com/m/23536/
分享到:
评论

相关推荐

    solr-import-export-json最新代码

    solr-import-export-json最新代码solr-import-export-json最新代码solr-import-export-json最新代码solr-import-export-json最新代码solr-import-export-json最新代码solr-import-export-json最新代码solr-import-...

    solr4.10.2 CHM 英文 API

    solr lucene solr4.10.2 CHM 英文 API 如果打不开,右键解除锁定即可查阅

    Solr 查询,索引

    4. **API支持**:Solr提供了RESTful API,支持通过HTTP协议进行操作,便于各种编程语言的集成。 四、实践应用 在实际项目中,MySearch可能是一个自定义的搜索系统,利用Solr的查询和索引功能,构建一个高效的全文...

    solr注解自动扫描API

    用于扫描solr注解,solrJ调用创建实体类时,可用于导入该包接口API

    跟益达学Solr5之批量索引JSON数据

    Apache Solr,作为一款强大的开源搜索引擎,提供了对JSON等多格式数据的快速索引和查询能力。本篇将深度解析如何在Solr5中批量索引JSON数据,助你轻松应对大数据挑战。 一、Solr5简介 Solr5是Apache Solr的一个...

    solr_api

    Solr API 是Apache Solr的核心组成部分,它提供了一组丰富的HTTP接口,允许用户与Solr索引进行交互,包括查询、文档的增删改查、配置管理等操作。Solr作为一个强大的全文搜索引擎,广泛应用于各类大数据量、高性能的...

    Solr 3.6.0 API CHM格式

    Apache Solr API 文档 chm格式带索引和全文检索,方便携带和查询 从之前发布其他chm文件下载用户的反映看,有不少朋友反映下载后打开无法显示,这一般不是chm文件的问题,这里统一说明一下解决办法: 如果文件打开...

    solr查询语法.pdf

    这使得Solr能够和多种编程语言配合使用,满足不同的数据交换需求。 “indent”参数用于格式化XML格式的响应,当设置为true时,返回的XML会被缩进以便于阅读。而“debugQuery”参数用于输出查询过程中的各种参数,...

    Solr 3.6.1 API

    Solr3.6.1英文chm格式API 全文搜索用的

    使用java实现solr-7.1.0的api和solr最新支持的sql查询

    在本篇文章中,我们将深入探讨如何使用Java API来与Solr 7.1.0进行交互,并了解Solr最新支持的SQL查询功能。 首先,让我们来讨论如何通过Java API与Solr 7.1.0进行通信。Solr提供了一个名为SolrJ的客户端库,它允许...

    Solr-4.2-api-docs.chm

    这是最新的全文检索引擎Solr4.2 Solrj API 包含全部的api 其中还有部分官方文档,

    solr查询语法

    ### Solr查询语法详解 #### 一、Core Query Param 查询参数 在Solr查询中,有许多重要的查询参数,这些参数可以帮助我们更精确地控制搜索行为。 1. **q**: 必填参数,代表查询字符串。它是任何Solr查询的基础,...

    Solr 搜索引擎 asp.net实现 示例详细操作步骤

    Solr是一个独立的企业级搜索应用服务器,它对外提供类似于Web-service的API接口。用户可以通过http请求,向搜索引擎服务器提交一定格式的XML文件,生成索引;也可以通过Http G Solr et操作提出查找请求,并得到XML...

    Solr_4.2.1 docs API (CHM格式)

    Solr是一个独立的企业级搜索应用服务器,它对外提供类似于Web-service的API接口。用户可以通过http请求,向搜索引擎服务器提交一定格式的XML文件,生成索引;也可以通过Http Get操作提出查找请求,并得到XML格式的...

    最新springboot solr查询

    Solr是一个开源搜索平台,用于构建搜索应用程序。Solr可以和Hadoop一起使用。由于Hadoop处理大量数据,Solr帮助我们从这么大的源中找到所需的信息。不仅限于搜索,Solr也可以用于存储目的。像其他NoSQL数据库一样,...

    solr-6.2.0源码

    6. 多语言支持:Solr内置了多种语言分析器,支持不同语言的全文搜索。 7. 高亮显示:Solr可以高亮显示搜索结果中的关键词,提高用户体验。 三、Solr 6.2.0的改进与新特性 1. 改进的ShardHandler API:增强了对请求...

    基于Solr的多表join查询加速方法

    - **查询设计**:通过调整查询语句的结构,如使用“exists”查询或“join”查询,以适应Solr的查询机制,提升性能。 - **硬件和架构优化**:例如,增加Solr服务器的内存,使用SSD硬盘提升I/O速度,或者采用更高效的...

Global site tag (gtag.js) - Google Analytics