Solr查询数据,其实下面一堆的参数,我也没有做测试,只是转载过来了,我大概只用了高亮、排序、查询、分页,其他的好像没有用过,以后用再来查

一.基本查询

参数意义

q

查询的关键字,此参数最为重要,例如,q=id:1,默认为q=:,

fl

指定返回哪些字段,用逗号或空格分隔,注意:字段区分大小写,例如,fl= id,title,sort

start

返回结果的第几条记录开始,一般分页用,默认0开始

rows

指定返回结果最多有多少条记录,默认值为 10,配合start实现分页

sort

排序方式,例如id desc 表示按照 “id” 降序

wt

(writer type)指定输出格式,有 xml, json, php等

fq

(filter query)过虑查询,提供一个可选的筛选器查询。返回在q查询符合结果中同时符合的fq条件的查询结果,例如:q=id:1&fq=sort:[1 TO 5],找关键字id为1 的,并且sort是1到5之间的。

df

默认的查询字段,一般默认指定。

qt

(query type)指定那个类型来处理查询请求,一般不用指定,默认是standard。

indent

返回的结果是否缩进,默认关闭,用 indent=true

version

查询语法的版本,建议不使用它,由服务器指定默认值。

二. Solr的检索运算符

符号意义

“:”

指定字段查指定值,如返回所有值:

“?”

表示单个任意字符的通配

“*”

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

“~”

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

AND ||

布尔操作符

OR、&&

布尔操作符

NOT、!、-

(排除操作符不能单独与项使用构成查询)

“+”

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

( )

用于构成子查询

[]

包含范围检索,如检索某时间段记录,包含头尾,date:[201507 TO 201510]

{}

不包含范围检索,如检索某时间段记录,不包含头尾date:{201507 TO 201510}

三. 高亮

符号意义

h1

是否高亮,hl=true,表示采用高亮

hl.fl

设定高亮显示的字段,用空格或逗号隔开的字段列表。要启用某个字段的highlight功能,就得保证该字段在schema中是stored。如果该参数未被给出,那么就会高亮默认字段 standard handler会用df参数,dismax字段用qf参数。你可以使用星号去方便的高亮所有字段。如果你使用了通配符,那么要考虑启用hl.requiredFieldMatch选项。

hl.requireFieldMatch

如果置为true,除非用hl.fl指定了该字段,查询结果才会被高亮。它的默认值是false。

hl.usePhraseHighlighter

如果一个查询中含有短语(引号框起来的)那么会保证一定要完全匹配短语的才会被高亮。

hl.highlightMultiTerm

如果使用通配符和模糊搜索,那么会确保与通配符匹配的term会高亮。默认为false,同时hl.usePhraseHighlighter要为true。

hl.fragsize

-返回的最大字符数。默认是100.如果为0,那么该字段不会被fragmented且整个字段的值会被返回。

四. 分组

这是facet的官方wiki,里面有facet各个参数的详细说明。所以这里只说一些常用的。

Facet是Solr的核心搜索功能,主要是导航(Guided Navigation)、参数化查询(Paramatic Search)。Facet的主要好处是在搜索的同时,可以按照Facet条件进行分组统计,给出导航信息,改善搜索体验。

Facet主要分为:Field Facet 和 Date Facet 两大类

1. Field Facet

facet 参数字段必须被索引

facet=on 或 facet=true

facet.field 分组的字段

facet.prefix 表示Facet字段前缀

facet.limit Facet字段返回条数

facet.offict 开始条数,偏移量,它与facet.limit配合使用可以达到分页的效果

facet.mincount Facet字段最小count,默认为0

facet.missing 如果为on或true,那么将统计那些Facet字段值为null的记录

facet.sort 表示 Facet 字段值以哪种顺序返回 .格式为 true(count)|false(index,lex),true(count) 表示按照 count 值从大到小排列,false(index,lex) 表示按照字段值的自然顺序 (字母 , 数字的顺序 ) 排列 . 默认情况下为 true(count)

2. Date Facet

对日期类型的字段进行 Facet. Solr 为日期字段提供了更为方便的查询统计方式 .注意 , Date Facet的字段类型必须是 DateField( 或其子类型 ). 需要注意的是 , 使用 Date Facet 时 , 字段名 , 起始时间 , 结束时间 , 时间间隔这 4 个参数都必须提供 .

符号意义

facet.date

该参数表示需要进行 Date Facet 的字段名 , 与 facet.field 一样 , 该参数可以被设置多次 , 表示对多个字段进行 Date Facet.

facet.date.start

起始时间 , 时间的一般格式为 ” 2015-12-31T23:59:59Z”, 另外可以使用 ”NOW”,”YEAR”,”MONTH” 等等 ,

facet.date.end

结束时间

facet.date.gap

时间间隔,如果 start 为 2015-1-1,end 为 2016-1-1,gap 设置为 ”+1MONTH” 表示间隔1 个月 , 那么将会把这段时间划分为 12 个间隔段 .

facet.date.hardend

表示 gap 迭代到 end 时,还剩余的一部分时间段,是否继续去下一个间隔. 取值可以为 true

例 start 为 2015-1-1,end 为 2015-12-21,gap 为 ”+1MONTH”, 如果hardend 为 false,则,最后一个时间段为 2015-12-1 至 2016-1-1; 反之,如果 hardend 为 true,则,最后一个时间段为 2015-12-1 至 2015-12-21.

注意:Facet的字段必须被索引,无需分词,无需存储。无需分词是因为该字段的值代表了一个整体概念,无需存储是因为一般而言用户所关心的并不是该字段的具体值,而是作为对查询结果进行分组的一种手段,给出相关的分组信息,从而改善搜索体验。

solr 英文模拟mysql like查询xml_Solr之精确、匹配、排序、模糊查询-yellowcong相关推荐

  1. solr 英文模拟mysql like查询xml_Solr实现类似MySQL的LIKE查询功能

    最近在工作中遇到需要对大文本进行关键词查询.需要实现的效果为,当用户输入一个字或者一个词,要搜出包含这个字或者词的所有内容.就相当于MySQL的LIKE查询效果一样. 在这种场景下,第一时间想到的肯定 ...

  2. linux命令 怎么模糊查询,linux find命令如何实现模糊查询

    linux find命令实现模糊查询的方法:根据文件名模糊查询,查找opt目录下后缀为[.log]的文件,代码为[find /opt/ -type f -name "*.log"] ...

  3. mysql %和正则_mysql 正则模式和like模糊查询

    MySql like模糊查询使用详解 一.SQL的模式匹配允许你使用"_"匹配任何单个字符,而"%"匹配任意数目字符(包括零个字符).在 MySQL中,SQL的 ...

  4. mysql mybatis模糊查询语句_详解MyBatis模糊查询LIKE的三种方式

    模糊查询也是数据库SQL中使用频率很高的SQL语句,使用MyBatis来进行更加灵活的模糊查询. 直接传参法 直接传参法,就是将要查询的关键字keyword,在代码中拼接好要查询的格式,如%keywo ...

  5. mysql查询按值多的排序_MySQL查询结果按某值排序

    MySQL查询结果按某值排序 使用MySQL很多时候我们不仅只是查询出结果,还需要对查询结构进行排序,下文对查询结果按某值排序的方法作了详细的介绍,供您参考. AD: MySQL查询结果如何排序呢?这 ...

  6. mysql like 贪婪匹配_mysql模糊查询like与REGEXP的使用详细介绍

    前言 在mysql中实现模糊查询的有like和regexp.本文通过实例代码给大家详细介绍这两者的使用方法,下面来跟着小编一起学习学习吧. like模式 like意思是长得像,有两个模式:_和% _表 ...

  7. mysql 关键字模糊查询_MySQL单表多关键字模糊查询的实现方法

    在最近的一个项目需要实现在MySQL单表多关键字模糊查询,但这数个关键字并不一定都存在于某个字段.例如现有table表,其中有title,tag,description三个字段,分别记录一条资料的标题 ...

  8. ios mysql 修改数据,iOS数据库FMDB--增删改查(模糊查询)实写记录

    在iOS中,主要有5种数据缓存的策略: 1.plist 2.归档 3.偏好设置 4.沙盒文件 5."SQLite数据库" 其中,"SQLite数据库" 是最常用 ...

  9. MySQL数据库一个字段对应多个值得模糊查询

    当一个字段想模糊查询出多个字段的时候,正常情况下一般会这么作 1 select * from a where name like 'a%' or name like 'b%' ....or ...; ...

最新文章

  1. 实现一个基于 SharePoint 2013 的 Timecard 应用(下)
  2. GPS实时跟踪程序模拟(2)动画回放
  3. [csdn markdown]使用摘记一源码高亮及图片上传和链接
  4. linux svn 撤销del,svn delete-删除文件和目录的实例
  5. PowerDesigner中在生成的数据库脚本中用name列替换comment列作为字段描述的方法
  6. mariadb允许远程访问权限
  7. 彪马PUMA源代码被盗,称客户数据不受影响
  8. skyline软件体系及工作流程
  9. 面向 Java 开发人员的 db4o 指南: 简介和概览
  10. 51单片机WIFI模块ESP8266-01s一定要看这个!普中科技给的模块 避免采坑!+CWJAP:3 FAIL 配置不了wifi名称和密码?
  11. VBA代码行号显示 VBA代码助手独家功能
  12. Java解析省市县树形结构工具类
  13. 如何打造自动驾驶的数据闭环?
  14. 逻辑强化(03)真假推理 知识练习
  15. VMware 8安装Mac OS X 10.7
  16. Python用Pillow(PIL)进行简单的图像操作(边缘增强、锐利、平滑等)
  17. sortBy(-_._2 ) in scala
  18. PPT放映时不能全屏播放解决方法
  19. 2009.02.24 奥巴马总统发表国情咨文(全文)
  20. 【spark】Spark环境搭建(运行模式)

热门文章

  1. 3.1.10 基本分段存储管理方式
  2. Spring boot的Webjars
  3. EF映射之修改数据库
  4. python:dataframe
  5. IDEA 真牛逼,900行 又臭又长 的类重构,几分钟搞定
  6. 【struts2+hibernate+spring项目实战】用户登录校验(struts拦截器)
  7. 信息系统项目管理知识--组织级项目管理
  8. Oracle包和包体以及与非包体定义函数、过程的区别
  9. 日常生活中怎样利用计算机的,数据存储与管理在日常生活中的三种方式
  10. emwin修改text字体颜色_Rggplot2 绘制带颜色条的相关性散点图