solr查询语法

简介: 配置好solr后,可以通过web管理界面进行管理和查询。web界面基本列出了大多数查询参数,可以通过这个学习lucene的查询语法。solr的查询解析是通过queryParser来配置的(solrconfig.xml),一般我们用默认的即可。其各参数含义与用法简单解释如下:q:查询输入,必须。可以使用运算符fq:过滤查询。可以使用运算符sort:排序的字段,格式为field score,多个


配置好solr后,可以通过web管理界面进行管理和查询。web界面基本列出了大多数查询参数,可以通过这个学习lucene的查询语法。
solr的查询解析是通过queryParser来配置的(solrconfig.xml),一般我们用默认的即可。其各参数含义与用法简单解释如下:
q:查询输入,必须。可以使用运算符
fq:过滤查询。可以使用运算符
sort:排序的字段,格式为field score,多个字段之间用逗号隔开,比如sum(x_f, y_f) desc, price asc,默认是score desc
start:从哪一行开始
rows:获取多少行
fl:查询要输出的字段,字段之间用逗号隔开,比如title,price,seller,星号代表所有,默认就是星号。
df:定义查询时默认的查询field。
wt:返回的数据类型,可以是JSON、XML、python、ruby、php、csv等格式。
indent:true/false,返回的XML格式是否需要缩进(格式化展示),默认为false
debugQuery:调试查询,会输出查询过程的一些参数。
 
高亮相关:
高亮是通过searchComponent来配置的,在solrconfig.xml中配置名为highlight的searchComponent即可,默认的实现是solr.HighlightComponent。
hl:true/false,是否高亮显示
hl.fl:高亮显示的字段
hl.example.pre:高亮显示的前缀
hl.exapmle.post:高亮显示的后缀
hl.requireFieldMatch:是否只在查询指定的field(只有当hl.usePhraseHighlighter为true时才生效)高亮显示,默认是在所有field都高亮
hl.usePhraseHighlighter:true/false,使用SpanScorer高亮查询短语
hl.highlightMultiTerm:true/false,如果SpanScorer被启用,这个参数针对前缀/模糊/范围/通配符等开启高亮显示
 
facet:true/false
facet是solr的高级搜索功能之一,可以给用户提供更友好的搜索体验(类似于面包屑导航的功能)。在搜索关键字的同时,能够按照 facet指定的字段进行分组统计。比如商品的分类、商品的规格等。facet的字段必须被索引,无须分词(分词意义不大),也无须存储。详细可参考 《Solr的facet查询》
facet的查询结果返回字段为facet_counts,与responseHeader、response同级。
facet.query:类似于filter的语法,对任意字段进行筛选
facet.field:需要进行facet的字段
facet.prefix:对facet字段的前缀过滤
facet.sort:true/false,对facet以哪种顺序返回,true为按照count值从大到小排序,默认为true
 
spellcheck:拼写检查
spellcheck是通过component的方式实现的,你可以在solrconfig.xml文件中配置searchComponent来完成拼写 检查的功能,默认的实现是solr.SpellCheckComponent,具体的配置参数和实现原理可以看这里 《spellCheckComponent》
 
spatial:空间搜索
spatial是专门针对空间数据进行搜索的,空间位置的索引和存储fieldType是LatLonType或者 SpatialRecursivePrefixTreeFieldType,通过使用空间搜索,你可以对点、面等数据建立索引,以圆形、方形或其他形状进 行范围搜索,以及对搜索结果按距离排序等等,具体的配置参数和实现原理可以看这里《SpatialSearch》
 
 
检索运算符:
冒号":": field:value结构查询,表示字段field值为value的查询。
通配符:?(任意一个字符) *(任意字符)
布尔操作:AND(并且,同&&) OR(或者,同||) +(包含) -(不包含) NOT(同!),注意AND、OR、NOT均为大写
范围:[A TO B](从A到B之间,包含A和B,注意TO大写),{A TO B}(从A到B之间,不包含A和B,注意TO大写)
子运算:()括号跟数学表达式上的差不多,比如:(瓜 OR 傻) AND 男人
模糊检索:~表示模糊检索,比如:roam~将找到形如foam和roams的单词;roam~0.8,检索返回相似度在0.8以上的记录
控制相关度:^表示相关度,如检索jakarta apache,同时希望让”jakarta”的相关度更加好,那么在其后加上”^”符号和增量值,即jakarta^4 apache

目录
相关文章
|
存储 JavaScript 前端开发
Vue3 详细教程及实例(完整版)
Vue3 详细教程及实例(完整版)
1382 0
|
JSON JavaScript 定位技术
echarts:从github及其镜像下载china.js和china.json
echarts:从github及其镜像下载china.js和china.json
8763 0
|
5月前
|
人工智能 Rust 监控
这 3 个开源小工具,帮你让 Coding Agent 少吃点 Token
今天我们就来分享 3 个有用的开源项目,专门帮你的 Coding Agent 整理“上下文”:让它少翻无关代码,少吞冗长日志,把 token 留给更关键的信息。
694 0
这 3 个开源小工具,帮你让 Coding Agent 少吃点 Token
基于springboot的郑州旅游景点推荐系统
本项目基于Spring Boot、Vue、Java和MySQL技术,构建郑州旅游景点智能推荐系统。通过大数据分析与个性化算法,整合少林寺、嵩山等本地资源,实现游客需求精准匹配,提升旅游体验与城市智慧化水平,推动郑州旅游业数字化转型与高质量发展。
|
供应链 安全 API
淘宝API一键同步库存,销量翻倍轻松实现!
在电商竞争激烈的当下,库存管理是提升销量的关键。淘宝开放平台提供API接口,支持一键同步库存,实现线上线下数据实时更新,避免缺货或超卖。本文详解操作步骤,并附Python示例代码,助你轻松掌握自动化库存管理,提升转化率,实现销量翻倍。
vs code常见的查找快捷键大全
【11月更文挑战第1天】本文介绍了 VS Code 中的基本查找和替换操作,包括在当前文件中查找(Ctrl + F)、查找替换(Ctrl + H)、查找下一个(F3)和查找上一个(Shift + F3)。还涵盖了在多个文件中查找(Ctrl + Shift + F)和查找替换(Ctrl + Shift + H),以及符号查找相关操作,如转到符号(Ctrl + T)和在文件中查找符号(Ctrl + Shift + O)。这些快捷键和功能帮助用户高效地管理和编辑代码。
3726 2
|
人工智能 自然语言处理 前端开发
关于ToB垂直领域大模型的一点探索和尝试
本文分享了物流技术团队在垂直领域大模型开发和部署过程中的技术细节、挑战解决策略以及实际应用案例。
|
人工智能 算法 新能源
【2023高教社杯】A题 定日镜场的优化设计 问题分析及数学模型
本文介绍了2023年高教社杯数学建模竞赛A题的定日镜场优化设计问题,涉及问题分析和数学模型构建,旨在提高太阳能光热发电效率并实现电力系统的新能源转型。
877 1
【2023高教社杯】A题 定日镜场的优化设计 问题分析及数学模型
|
C# 数据安全/隐私保护
推荐三款开源且实用的.NET代码混淆工具,保护你的.NET应用程序
推荐三款开源且实用的.NET代码混淆工具,保护你的.NET应用程序
1943 0