solr快速上手:常用查询语法(八)

这篇具有很好参考价值的文章主要介绍了solr快速上手:常用查询语法(八)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

0. 引言

solr作为搜索引擎,就像我们使用mysql一样,在日常业务中,更多接触的则是各类操作语法,所以今天,我们再来学习solr的常用查询语法,为大家在工作中最基本的solr查询打下基础。

solr快速上手:solr简介及安装(一)
solr快速上手:核心概念及solr-admin界面介绍(二)
solr快速上手:managed-schema标签详解(三)
solr快速上手:创建核心/索引/core(四)
solr快速上手:配置从mysql同步数据(五)
solr快速上手:实现从mysql定时自动同步数据(六)
solr快速上手:配置IK中文分词器(七)

1. 基本概念

1.1 通配符

当需要进行正则类匹配时,需要用到通配符

通配符 说明
? 匹配任意单个字符
* 匹配任意多个字符

product_name:?果

solr快速上手:常用查询语法(八)

remarks:送货*

solr快速上手:常用查询语法(八)

1.2 连接符

solr中要实现多条件查询,就需要通过连接符来实现,支持并&&,或||连接

remarks:送货* && product_name:苹果

solr快速上手:常用查询语法(八)

remarks:送货* || product_name:苹果

solr快速上手:常用查询语法(八)

2. 常用查询语法

1.1 精确查询

  • 分词查询 filed:value

remarks:送货

solr快速上手:常用查询语法(八)

  • 强制不分词查询 field:“value”

remarks:“送货上门”
在查询词外加上双引号

solr快速上手:常用查询语法(八)

  • 短语查询 field:“value1 value2”

remarks:“送货上门 不想下楼”
不同的短语之间用空格隔开

solr快速上手:常用查询语法(八)

1.2 模糊查询

  • 通配符查询 field:value*, field:v?lue

remarks:送货* | 匹配以“送货”开头的数据
product_name:?果 | 匹配以“果”结尾,且前面只有一个字符的数据
product_name:* | 匹配product_name不为空的数据
*:* 不区分字段,| 查询所有数据

  • 模糊搜索 field:value~N

区别于上述的通配符查询,模糊查询指的是我们在日常查询中出现的错别字,近似词等查询场景,用一个“~”符号表示,后面的N表示允许误差的字符个数,不写默认为1
remarks:送火上门~1

solr快速上手:常用查询语法(八)

  • 邻近搜索 field:“value”~N

所谓邻近搜索,就是多个关键词之间的距离在指定范围,主要应用于近似词的搜索,比如搜索“apple pie”~2, 那就是搜索文档中包含“apple”, "pie"分词,且两个分词之间距离不超过2的数据
与模糊查询的区别是这个多了双引号
remarks:“送货 下楼”~2, “送货”与“下楼”之间隔了“上门”与“不想”,距离在2个之内,于是可以查询出来

solr快速上手:常用查询语法(八)

1.3 排除查询

  • 排除查询 filed:(* NOT “value1” NOT “value2”)

排除指定的分词,将其他的数据查询出来
remarks:(* NOT “送货” NOT “红的”)

solr快速上手:常用查询语法(八)

1.4 范围查询

  • 数值范围查询 field:[v1 TO v2] , field:{v1 TO v2}

price:[10 TO 29] | 表示price >= 10 & price <= 29
price:{10 TO 29} | 表示price >10 & price < 29
price:[10 TO *] | 表示price >= 10

  • 日期范围 field:[YYYY-MM-DDTHH:mm:ssZ TO YYYY-MM-DDTHH:mm:ssZ]

create_time:[2023-05-01T00:00:00Z TO 2023-05-10T23:00:00Z]

solr快速上手:常用查询语法(八)

1.5 权重查询

  • 权重查询 field:value1^2 value2^0.5

存在部分场景,我们需要将匹配查询词1的数据优先排序,匹配查询词2的降低优先级,这时就需要用到"^"关键词,通过其对查询得分设置权重
remarks:送货^2

solr快速上手:常用查询语法(八)

2. 更多查询

本文我们只列举基础常用的查询,更多查询用法,大家可以查看官方文档拓展:
https://solr.apache.org/guide/solr/latest/query-guide/standard-query-parser.html#fuzzy-searches

solr快速上手:常用查询语法(八)

如果想要切换对应版本的官方文档,可在页面上调整

solr快速上手:常用查询语法(八)文章来源地址https://www.toymoban.com/news/detail-486186.html

到了这里,关于solr快速上手:常用查询语法(八)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • solr快速上手:搭建solr集群并创建核心,设置数据同步(十一)

    前几章我们已经讲解了solr单机版的基本使用,但实际生产中,为了保证高可用、高性能,我们一般会采用集群模式,所以接下来,我们继续讲解solr集群的搭建和基本操作 在讲解solr集群模式前,我们要先了解“分片”的概念。 当节点由一个拓展为多个时,数据存储和同步问

    2024年02月13日
    浏览(76)
  • ES常用命令与常用查询(1)

    查看集群状态 创建索引 查看所有索引 查看索引信息 删除索引 2.1 查询所有 match_all 使用match_all,默认只会返回10条数据 返回指定条数 size 不能无限大,如果过大会出现异常 1、查询结果的窗口太大,from + size的结果必须小于或等于10000,而当前查询结果的窗 口为20000。 2、可以

    2024年02月06日
    浏览(51)
  • 域名批量查询功能常用查询方法教程

    一些用户在抱怨,要找到好域名怎么就那么不容易呢,能不能让我批量查下不含0的数字啊,能不能查下不含4的数字啊,能不能查下AABBB这样的域名啊…… 别着急,这就给您支招啦:通过西部数码强大的批量查询功能,您想要的米,统统都能查到。接下来就回答下大家长遇到

    2023年04月11日
    浏览(53)
  • Springboot 整合ElasticSearch 常用的插入查询,模糊查询,范围查询

    repository.deleteById(id); } catch (Exception ex) { ex.printStackTrace(); return false; } return true; } public Dog saveDog(Dog dog) { try { Dog save = repository.save(dog); System.out.println(“结果:”+save.toString()); return save; } catch (Exception ex) { ex.printStackTrace(); return null; } } public Boolean saveDogAll(List dogsList) { try { reposit

    2024年04月22日
    浏览(43)
  • MySQL 查询常用操作(2) —— 条件查询 where

    MySQL中常用的查询操作,首先是能直接从表中直接取出数据,接着能对查询结果做一些简单的处理,比如去重等,然后是根据条件查询数据,包括精准查询、模糊查询以及按照数据的某个范围或者指定多个指标进行查询,值得注意的是,MySQL中的一些查询会忽略空值。最后是将

    2023年04月10日
    浏览(65)
  • 【ES常用查询】基于ElasticsearchRestTemplate及NativeSearchQuery的查询

    包含当前es所有的查询, 需要什么代码直接照搬,改个参数就行! 用的好请务必给我点赞!!!感谢爱你们!!! 为啥写这篇文章呢: 大概是因为目前公司用的api跟以前的不太一样, 以前我们是基于高标准客户端直接做的, 但是目前这边同事是基于ElasticsearchRestTemplate跟

    2024年02月03日
    浏览(41)
  • solr快速上手:整合SolrJ实现客户端操作(九)

    我们前面学习了solr的服务端基础操作,实际项目中我们还需要在客户端调用solr,就像调用数据库一样,我们可以基于 solrJ 来实现对solr的客户端操作 SolrJ 是 Solr官方提供的 Java 客户端库,主要用于与 Solr 服务器进行交互。内部封装了一组API,可以方便地实现对solr服务端的各

    2024年02月10日
    浏览(39)
  • ES常用查询命令

    一、基本命令 1、获取所有_cat命令 2、获取es集群服务健康状态 epoch: 时间戳的 Unix 时间戳格式,表示快照生成的时间。 timestamp: 可读性更强的时间戳格式,表示快照生成的时间(08:06:34)。 cluster: Elasticsearch 集群的名称,这里是 \\\"es-cluster\\\"。 status: 集群的健康状态,这里是 \\\"y

    2024年02月04日
    浏览(47)
  • ElasticSearch常用查询操作

         一般我们使用ES最多的就是查询,今天就讲一下ES的查询。这里我是建了一个person的索引。 1.查询所有数据并进行排序 说明:这里是一个GET请求,person代表索引,_search表示搜索(固定写法)。 \\\"query\\\"表示查询。“match_all”表示查询所有。后面的sort就表示要对查询结果进行

    2024年02月11日
    浏览(40)
  • mongdb常用查询

    mongdb数据库和关系型数据库完全不同, 主要在数据结构存储和查询语法方面。mongdb是把数据存在文档里面,文档里面是一种bson格式的数据(类似json格式),再通过mongdb的javascript语法取读取符合条件的文档内容用表的形式展示给我们。查询语句为 db.表名.find(query, projection); 含义

    2024年02月07日
    浏览(32)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包