一个典型的搜索处理过程,以及所须要的參数例如以下:
  1. qt:指定一个RequestHandler,即/select。缺省是使用DisMax RequestHandler
  2. defType:选择一个query parser。缺省是RequestHandler中配置的那个
  3. qf:指定须要搜索的field。假设不指定就搜索全部的field
  4. start, rows:指明分页參数
  5. fq:指明须要怎样过滤搜索结果。以及缓存搜索结果
  6. wt:指定搜索结果的格式,比方json或xml

搜索所须要的參数基本上能够分为三类:
  • 须要搜索的字符串
  • 调整搜索的參数(指定被搜索的field、为某些field添加权值、等等)
  • 搜索结果展示的參数(排序、结果过滤、分页、高亮显示、等等)

搜索请求參数:
參数
说明
q
Query,要搜索的内容。
  • 假设要搜索一个句子,用引號引起来:q="Hello wolrd"
  • 假设指定搜索某个域:q=field_name:content
  • 假设是中文,用引號引起来,就是全内容匹配才返回,如:q="笔记"
  • 假设要搜索多个单词、句子,使用加号(+):q="笔记"+"配置"
  • 假设要排除含有某个keyword的,使用减号(-):q="笔记"-"配置"
fq
Filter Query。搜索结果过滤(结果会被缓存起来):

  • fq=popularity:[10 to *]:仅仅返回popularity大于10的结果
  • 须要同一时候满足两个条件的情况:fq=popularity:[10 TO *]&fq=section:0
  • 上面这样的也能够写成:fq=popularity:[10 TO *]+fq=section:0
后两种的不同点:前一种:搜索结果分开存在缓存中,然后取交集。后一种:搜索结果存在一个缓存中
sort
指定搜索结果依照某个域来排序。样例:
  • score desc(缺省):依照搜索分数降序排序
  • price asc:依照“price”域升序排序
  • nStock desc, price asc:先依照nStock降序,再依照price升序
start, rows
返回第start条開始。一共rows条记录。样例:
  • start=11&rows=100
  • 缺省:start=0, rows=10
fl
Field List,要返回的域。比方“id”、*,假设有多个,用逗号(,)或空格分开。还能够返回score。样例:
  • fl=id,name
  • fl=id,score
  • fl=*,score
df
Default Field,默认的查询字段,又一次指定并覆盖schema.xml中的default field
wt
Writer,指定一个writer以返回不同的格式,比方:json, xml...
facet
统计查询结果:
按某个域统计:facet=true&facet.field=author(依照“author”这个域统计)
defType
指定一个Request Handler,然后使用它所配置的parser,比方dismax, edismax来运行搜索。缺省是dismax。即"lucene" parser。dismax、edismax支持为每一个被搜索的域指定权值。以影响score。

dismax 是 Maximum Disjunction 的缩写。

qf
Query Field。指定要搜索的域,覆盖df,同一时候能够为某个域设置权值,须要配合defType=dismax或defType=edismax,样例:
  • defType=dismax&qf=author^10
  • defType=dismax&qf=author^10+name^2+content



注:关于Maximum Disjunction的定义:
A query that generates the union of documents produced by its subqueries, and that scores each document with the maximum score for that document as produced by any subquery, plus a tie breaking increment for any additional matching subqueries.
大概就是:一个查询由若干个子查询组成,每一个子查询都有一个得分,总分=最大分+其它子查询的分数×tieBreakerMultiplier。




Solr 搜索的过程和所须要的參数的更多相关文章

  1. 第8章2节《MonkeyRunner源代码剖析》MonkeyRunner启动执行过程-解析处理命令行參数

    MonkeyRunnerStarter是MonkeyRunner启动时的入口类,由于它里面包括了main方法.它的整个启动过程主要做了以下几件事情: 解析用户启动MonkeyRunner时从命令行传输 ...

  2. 关于Solr搜索标点与符号的中文分词你必须知道的(mmseg源码改造)

    关于Solr搜索标点与符号的中文分词你必须知道的(mmseg源码改造) 摘要:在中文搜索中的标点.符号往往也是有语义的,比如我们要搜索“C++”或是“C#”,我们不希望搜索出来的全是“C”吧?那样对程 ...

  3. 什么是Solr搜索

    什么是Solr搜索 一.Solr综述   什么是Solr搜索 我们经常会用到搜索功能,所以也比较熟悉,这里就简单的介绍一下搜索的原理. 当然只是介绍solr的原理,并不是搜索引擎的原理,那会更复杂. ...

  4. Solr系列五:solr搜索详解(solr搜索流程介绍、查询语法及解析器详解)

    一.solr搜索流程介绍 1. 前面我们已经学习过Lucene搜索的流程,让我们再来回顾一下 流程说明: 首先获取用户输入的查询串,使用查询解析器QueryParser解析查询串生成查询对象Query ...

  5. 解决solr搜索多词匹配度和排序方案

    转载请标明出处:http://blog.csdn.net/hu948162999/article/details/47727159 本文主要介绍了在短语.句子.多词查询中.solr在控制查询命中数量. ...

  6. Solr搜索技术

    Solr搜索技术 今日大纲 回顾上一天的内容: 倒排索引 lucene和solr的关系 lucene api的使用 CRUD 文档.字段.目录对象(类).索引写入器类.索引写入器配置类.IK分词器 查 ...

  7. solr搜索应用

    非票商品搜索,为了不模糊查询影响数据库的性能,搭建了solr搜索应用,php从solr读取数据

  8. solr搜索结果转实体类对象的两种方法

    问题:就是把从solr搜索出来的结果转成我们想要的实体类对象,很常用的情景. 1.使用@Field注解 @Field这个注解放到实体类的属性[字段]中,例如下面 public class User{ ...

  9. spring data solr 搜索关键字高亮显示

    spring data solr 搜索关键字高亮显示 public Map<String, Object> highSearch(Map searchMap) { Map map = ne ...

随机推荐

  1. Windows下搭建ffmpeg+VS2008开发环境详细教程【转】

    本文转载自:http://www.voidcn.com/article/p-vxdntdgc-bkq.html 由于个人是从事音视频开发相关的工作,所以也把自己的一些过程写下来,方便大家以及自己查看, ...

  2. [Swift]注册并购买加入Apple开发者计划。提示: “你的支付授权失败。请核对你的信息并重试,或尝试其他支付方式。请联系你的银行”

    ★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★➤微信公众号:山青咏芝(shanqingyongzhi)➤博客园地址:山青咏芝(https://www.cnblogs. ...

  3. NOIP2012 D2 T2 借教室 线段树 OR 二分法

    题目描述: 在大学期间,经常需要租借教室.大到院系举办活动,小到学习小组自习讨论,都需要向学校申请借教室.教室的大小功能不同,借教室人的身份不同,借教室的手续也不一样. 面对海量租借教室的信息,我们自 ...

  4. element-ui 分页中的slot的用法(自定义分页显示内容)

    官方给的简单的例子以及效果. 最后弄成的效果: 按照文档在layout 添加slot, 这几个参数可以随意调换位置,然后分页显示效果会根据调换的位置显示相应内容.

  5. Java 系列之spring学习--依赖注入(二)

    一.依赖注入的三种方式 接口注入,set注入,构造函数注入 二.构造函数注入 2.1.测试类 package test; public class test01 { public String msg ...

  6. window下安装svn

    下载 http://subversion.apache.org/ 注意:上边的黑窗口不要关闭! 如何校验svn服务有运行

  7. JQuery学习笔记系列(一)----选择器详解

    笔者好长时间没有更新过博客园的笔记了,一部分原因是去年刚刚开始工作一段时间忙碌的加班,体会了一种每天加班到凌晨的充实感,之后闲暇时间了也因为自己懒惰没有坚持记笔记的习惯,现在重新拾起来. 借用古人的一 ...

  8. UWP Tiles

    1.我们建议安装通知库 NuGet 程序包 详细内容 2.我们建议安装NotificationsVisualizerLibrary 这是 The official NotificationsVisua ...

  9. 组装自己的tesla超级计算机

    原文链接:blog.csdn.net/xqj198404/article/details/20016279 NVIDIA链接:http://www.nvidia.cn/object/tesla_bui ...

  10. Oracle 11g XE 与 Oracle SQL Developer 的配置与使用(重制版)

    Oracle 11g XE 与 Oracle SQL Developer 的配置与使用(重制版) 前提概要 项目上需求要适应Oracle数据库,当然这和某EF框架也有关. 因为Oracle 的表名和列 ...