查询运算符

例如:http://localhost:8984/solr/mycore/select?q=*:*

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

?  匹配单个字符, 例如: q=title:??拳 可以匹配标题为“形意拳”的文档

*  匹配零个或多个字符, 例如: q=title:*形意拳 或者 q=title:*拳 都可以匹配标题为“形意拳”的文档

~  表示模糊检索, 例如:q=title:xoodcopping~0.8 可以匹配到标题为“Woodchopping”的文档, 但是q=title:xoodcopping~0.9 就无法匹配到, ~后面的数组在0~1之间,数值越大相似度越高。

AND 与操作符,例如: q=title:形意拳 AND type:sport 可以匹配到标题为形意拳并且类型为sport的文档

OR  或操作符,例如: q=title:形意拳 OR title:悠波球 可以匹配到标题为形意拳或者悠波球的文档

NOT 非操作符, 例如: q=type:sport NOT title:悠波球 可以匹配到所有类型为sport但是标题不是悠波球的文档

! 非操作符, 例如: q=type:sport !title:悠波球 可以匹配到所有类型为sport但是标题不是悠波球的文档

- 非操作符, 例如: q=type:sport -title:悠波球 可以匹配到所有类型为sport但是标题不是悠波球的文档

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

()  用于构成子查询, 例如: q=type:sport AND ( group:sport OR title:悠波球 )

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

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

查询参数

q 指定查询条件, 条件项目以":"分割属性和值, 支持多个条件和子查询, 参考上面的查询运算符。

fq 过滤条件,格式同参数q,fq是在使用q参数查询完成后,再针对结果进行过滤。

sort 结果排序方式,支持desc和asc两种方式,例如:sort=score desc, price asc, sum(x_d, y_d) desc;  当不指定sort参数时,将会使用隐藏字段score进行desc排序。

start 结果偏移起始量

rows 返回结果的数量,配合start参数可实现分页的查询

fl Field List,指定返回结果中包含的字段, 默认返回除score等隐藏字段之外的所有字段,等同于fl=*,返回指定字段例如:fl=name, age

df Default Field 默认查询的字段,如果在q中没有指定字段,例如:q=michael 的时候指定默认的字段 df=name, 等同于q=name:michael

wt 响应的数据格式,支持格式:csv,geojson,javabin,json,php,phps,python,ruby,smile,velocity,xlsx,xml,sxlt

命令行操作

启动solr服务器

# solr start -p 8984

创建core

# solr create_core -c mycore

常用操作

增加文档

<add>
<doc>
<field name="id">1</field>
<field name="name">四格</field>
<field name="introduction">最长在家半年的死宅,三周热度,三天打鱼两天晒往</field>
</doc>
</add>
<commit/>

问题

Solr中的q与fq参数的区别在那儿?

原文链接:http://www.highersoft.net/html/notice/notice_311.html

今天遇到一个问题,把相同的参数比如name:张三,放到q与fq,两者返回的结果完全不一样。

经过debug发现,原因是这两个参数是solr查询的不同阶段使用的,所以结果不一样。

如果用于q。那么,就会查所有name中包含"张三"的,然后order by score,这时就会按name的相似度来排序。

而如果用fq,q设置为*:*。那么solr会先order by score,而因为条件是*:*,所以所有文档的相关性都是一样的,所以即使用fq过滤了,返回的最前面的却不是相关性最高的。

综上所述,以相关性(score)为优先排序条件的,那么条件一定放在q参数中。

solr的基础使用的更多相关文章

  1. Solr搜索基础

    本例我们使用类库和代码均来自: http://www.cnblogs.com/TerryLiang/archive/2011/04/17/2018962.html 使用C#来模拟搜索.索引建立.删除. ...

  2. solr学习-基础环境搭建(一)

    目前网上关于solr6.+的安装教程很少,有些6.0之前的教程在应用到6.+的版本中出现很多的问题,所以特别整理出来这一片文章,希望能给各位码农一些帮助! 很少写些文章,如有不对的地方,还希望多多指导 ...

  3. solr的基础和安装

    下载地址 http://archive.apache.org/dist/lucene/solr/   推荐 http://www.apache.org/dyn/closer.lua/lucene/so ...

  4. solr search基础知识(控制符及其参数)

    1.^ 控制符 (1)查询串上用^ 搜索: 天后王菲,如果希望将王菲的相关度加大,用^控制符. 天后  王菲^10.5  结果就会将含有王菲的document权重加大分数提高,排序靠前,10.5为权重 ...

  5. Solr搜索引擎基础

    搜索引擎是指一个庞大的互联网资源数据库,如网页,新闻组,程序,图像等.它有助于在万维网上定位信息. 用户可以通过以关键字或短语的形式将查询传递到搜索引擎中来搜索信息. 搜索引擎然后搜索其数据库并向用户 ...

  6. Lucene与Solr基础

    SolrSelectTest 查询与删除 package com.snow.solr; import com.snow.bean.Product; import org.apache.solr.cli ...

  7. 使用Solr索引MySQL数据

    环境搭建 1.到apache下载solr,地址:http://mirrors.hust.edu.cn/apache/lucene/solr/ 2.解压到某个目录 3.cd into D:\Solr\s ...

  8. Solr学习总结(六)SolrNet的高级用法(复杂查询,分页,高亮,Facet查询)

    上一篇,讲到了SolrNet的基本用法及CURD,这个算是SolrNet 的入门知识介绍吧,昨天写完之后,有朋友评论说,这些感觉都被写烂了.没错,这些基本的用法,在网上百度,资料肯定一大堆,有一些写的 ...

  9. Solr学习总结(三)Solr web 管理后台

    前面讲到了Solr的安装,按道理,这次应该讲讲.net与数据库的内容,C#如何操作Solr索引等.不过我还是想先讲一些基础的内容,比如solr查询参数如何使用,各个参数都代表什么意思? 还有solr ...

随机推荐

  1. python中的 uuid 模块使用示例

    此模块提供不可变的 UUID 对象 (类 uuid) 和函数uuid1().uuid3().uuid4().uuid5(), 用于生成在 RFC 4122 中指定版本1.3.4和5UUIDs .如果你 ...

  2. windows.h详解

    参考 http://blog.csdn.net/fengningning/article/details/2306650?locationNum=1&fps=1 windows.h解构 刚开头 ...

  3. liunx centOS6.5安装jdk教程

    第一步:mkdir /usr/java/ --在/usr目录下新建一个java目录 第二步:cp jdk-7u25-linux-x64.rpm /usr/java/ --将JDK文件复制到/usr/j ...

  4. 忽略SIGPIPE信号

    #include <stdlib.h> #include <sys/signal.h> void SetupSignal() { struct sigaction sa; // ...

  5. linux 保存git的账号密码

    今天在弄jenkins一建发版,遇到了git下载每次都要输入账号密码,所以百度一下,使用一下方法,搞定 一.通过文件方式 1.在~/下, touch创建文件 .git-credentials, 用vi ...

  6. nginx配置https转发http

    生成ssl证书: 1.首先要生成服务器端的私钥,运行时会提示输入密码,此密码用于加密key文件: openssl genrsa -des3 -out server.key 1024 2.去除key文件 ...

  7. AI之旅(4):初识逻辑回归

    前置知识   求导 知识地图   逻辑回归是用于分类的算法,最小的分类问题是二元分类.猫与狗,好与坏,正常与异常.掌握逻辑回归的重点,是理解S型函数在算法中所发挥的作用,以及相关推导过程. 从一个例子 ...

  8. excel 格式化姓名

                在做excel时,难免会遇到输入姓名对齐这种情况,如果数据少时我们可以手动敲空格来进行对齐,但数据量大时,手动调整就不是好办法了.     此时我们可以通过excel自带公式对 ...

  9. python 11

    # 一.闭包 # # 判断:函数名.__closure__ # 若返回cell,则是闭包,返回None则不是闭包. # # 闭包:内层函数对外层函数非全局变量的引用就叫闭包. def func1(x) ...

  10. 20155219付颖卓 Exp3 免杀原理与实践

    1.基础问题回答 (1)杀软是如何检测出恶意代码的? 杀毒软件有一个病毒的特征码库,通过识别恶意代码的特征码或者特征片段检测恶意代码 杀毒软件通过动态检测对象文件的行为来识别恶意代码,如果他的行为在一 ...