锋盈数科-知识库 Logo
首页
软件开发
计算机基础
Hello Halo
新手必读
关于本知识库
登录 →
锋盈数科-知识库 Logo
首页 软件开发 计算机基础 Hello Halo 新手必读 关于本知识库
登录
  1. 首页
  2. 软件开发
  3. Solr查询参数详解

Solr查询参数详解

0
  • 软件开发
  • 发布于 2024-09-25
  • 0 次阅读
黄健
黄健

一、 查询参数说明

在做solr查询的时候,solr提供了很多参数来扩展它自身的强大功能!以下是使用频率最高的一些参数!

1、常用

q - 查询字符串,这个是必须的。如果查询所有*:* ,根据指定字段查询( Name :张三 AND Address:北京)

fq - (filter query)过虑查询,作用:在q查询符合结果中同时是fq查询符合的,例如:q=Name:张三\&fq=CreateDate:[20081001 TO 20091031],找关键字mm,并且CreateDate是20081001

fl - 指定返回那些字段内容,用逗号或空格分隔多个。( * 表示所有 field ,如果想查询指定字段用逗号或空格隔开(如:Name,SKU,ShortDescription或Name SKU ShortDescription【注:字段是严格区分大小写的】))

start- 返回第一条记录在完整找到结果中的偏移位置,0开始,一般分页用。

rows- 指定返回结果最多有多少条记录,配合start来实现分页。

sort - 排序,格式:sort=+[,+]… 。示例:(score desc, price asc)表示先 “score” 降序, 再 “price” 升序,默认是相关性降序。

wt - (writer type)指定输出格式,可以有 xml , json , php , phps。

q.op 表示q 中 查询语句的 各条件的逻辑操作 AND(与) OR(或)

hl 是否高亮 ,如hl=true

hl.fl 高亮field ,hl.fl=Name,SKU

hl.snippets :默认是1,这里设置为3个片段

hl.simple.pre 高亮前面的格式

hl.simple.post 高亮后面的格式

facet 是否启动统计

facet.field 统计field

二、 Solr运算符

  1. “:” 指定字段查指定值,如返回所有值*:*

  2. “?” 表示单个任意字符的通配

  3. “*” 表示多个任意字符的通配(不能在检索的项开始使用*或者?符号)

  4. “\~” 表示模糊检索,如检索拼写类似于"roam"的项这样写:roam\~将找到形如foam和roams的单词;roam\~0.8,检索返回相似度在0.8以上的记录。

  5. 邻近检索,如检索相隔10个单词的"apache"和"jakarta”,“jakarta apache”\~10

  6. “^” 控制相关度检索,如检索jakarta apache,同时希望去让"jakarta"的相关度更加好,那么在其后加上”^“符号和增量值,即jakarta^4 apache

  7. 布尔操作符AND、\|\|

  8. 布尔操作符OR、\&\&

  9. 布尔操作符NOT、!、- (排除操作符不能单独与项使用构成查询)

  10. “+” 存在操作符,要求符号”+“后的项必须在文档相应的域中存在

  11. ( ) 用于构成子查询

  12. [] 包含范围检索,如检索某时间段记录,包含头尾,date:[200707 TO 200710]

  13. {} 不包含范围检索,如检索某时间段记录,不包含头尾
    date:{200707 TO 200710}

  14. / 转义操作符,特殊字符包括+ - \&\& \|\| ! ( ) { } [ ] ^ " \~ * ? : /

注:①“+“和”-“表示对单个查询单元的修饰, and 、or 、 not 是对两个查询单元是否做交集或者做差集还是取反的操作的符号

   比如:AB:china +AB:america,表示的是AB:china忽略不计可有可无,必须满足第二个条件才是对的,而不是你所认为的必须满足这两个搜索条件

   如果输入:AB:china AND AB:america ,解析出来的结果是两个条件同时满足,即+AB:china AND +AB:america或+AB:china +AB:america

  总而言之,查询语法: 修饰符 字段名:查询关键词 AND/OR/NOT 修饰符 字段名:查询关键词

三、 Solr查询语法

1. 最普通的查询,比如查询姓张的人(Name:张),如果是精准性搜索相当于SQL SERVER中的LIKE搜索这需要带引号(““),比如查询含有北京的(Address:“北京”)

2. 多条件查询,注:如果是针对单个字段进行搜索的可以用(Name:搜索条件加运算符(OR、AND、NOT) Name:搜索条件),比如模糊查询(Name:张 OR Name:李 )单个字段多条件搜索不建议这样写,一般建议是在单个字段里进行条件筛选,如( Name:张 OR 李),多个字段查询(Name:张 + Address:北京)

3.排序,比如根据姓名升序(Name asc),降序(Name desc)

原文链接:https://www.cnblogs.com/johnwood/p/3449118.html

原文链接: https://onlyou.blog.csdn.net//article/details/90060175

标签: #软件开发 1171
相关文章

万字:支付“核心系统”详解 2024-11-02 15:33

专栏作者:隐墨星辰 \| 主编:陈天宇宙 这篇文章也尝试化繁为简,探寻支付系统的本质,讲清楚在线支付系统最核心的一些概念和设计理念。 虽然支付行业已经过了风头最劲的时光,但跨境支付仍然在蓬勃发展,每年依然有很多新人进入这个行业,这篇文章尝试为这些刚入行的新人提供一点帮助。 文章只介绍一些支付行业十几

资深支付架构师视角:实战从问题定义到代码落地的完整套路 2024-11-02 15:33

前言 今天从一个实际案例入手,介绍站在架构师的角度,如何识别并定义问题,提炼需求,技术方案选型,再到详细设计,最后利用AI的能力协助写出核心的代码,验证与调优。 解决问题存在一定的模式,也可以称之为框架,总结出自己的思考和解题框架,以后再碰到同类型的问题就可以如庖丁解牛一样容易。 很多年前,我写代码

Spring 实现 3 种异步接口 2024-10-18 09:07

大家好,我是苏三~ 如何处理比较耗时的接口? 这题我熟,直接上异步接口,使用 Callable、WebAsyncTask 和 DeferredResult、CompletableFuture等均可实现。 但这些方法有局限性,处理结果仅返回单个值。在某些场景下,如果需要接口异步处理的同时,还持续不断地

重学SpringBoot3-集成Redis(五)之布隆过滤器 2024-10-08 11:24

更多SpringBoot3内容请关注我的专栏:《SpringBoot3》 期待您的点赞👍收藏⭐评论✍ 重学SpringBoot3-集成Redis(五)之布隆过滤器 1. 什么是布隆过滤器? * 基本概念 适用场景 2. 使用 Redis 实现布隆过滤器 * 项目依赖 Redis 配置

设计模式第16讲——迭代器模式(Iterator) 2024-10-08 11:24

一、什么是迭代器模式 迭代器模式是一种行为型设计模式,它提供了一种统一的方式来访问集合对象中的元素,而不是暴露集合内部的表示方式。简单地说,就是将遍历集合的责任封装到一个单独的对象中,我们可以按照特定的方式访问集合中的元素。 二、角色组成 抽象迭代器(Iterator):定义了遍历聚合对象所需的方法

vue2路由和vue3路由区别及原理 2024-10-08 11:24

一、Vue2 与 Vue3 路由的区别 1. 创建路由实例方式的不同 Vue 2 中,通过 Vue.use() 注册路由插件,并通过 new VueRouter() 来创建路由实例。 import Vue from 'vue';import VueRouter from 'vue-router';i

目录

IT 外包服务商

  • 意见投递
  • zyf6619

软件开发应用

主菜单

  • 首页
  • 软件开发
  • 计算机基础
  • Hello Halo
  • 新手必读
  • 关于本知识库
Copyright © 2024 your company All Rights Reserved. Powered by Halo.