转自:http://www.cnblogs.com/chenying99/archive/2012/07/24/2607339.html

1. standard (StandardRequestHandler)

标准查询分析器使用SolrQuerySyntax通过q参数来指定查询,它要求被很好的组织(Formed),或返回一个异常。对于精确查询和任意复杂的查询,使用Standard效果很好。
 
2. dismax ( DismaxRequestHandler )
dismax查询分析器是一个为用户提供的更宽容的查询分析器,查询字符串直接传递一个q参数。其他参数可以很容易搜索横跨多个Field,使用Disjunctions和不严格的短语查询返回高度相关的结果。
 
这里的“部分匹配”,是指返回的结果没有完全匹配所有搜索的关键词。

DisMaxQParserPluign里有一个参数mm(Minimum 'should' match),设置整个搜索关键词中最小需要匹配的数量。这里给出例子

"2" : 无论关键词一共有多少,doc最少需要匹配2个

"75%" : doc最少需要匹配75%的关键词,关键词个数向下取整。

"2<-25%" : 关键词少于3个的时候,doc需要全部匹配;大于等于3个的时候,doc最少需要匹配75%

"2<-1 5<80%" : 关键词少于3个的时候,需要全部匹配;3-5个的时候,只能有一个不匹配;大于5个的时候,最少需要匹配80%

默认mm为100%,也就是所有关键词都必须有匹配。即使在schema.xml里设置operator为OR,也要受到mm的限制,也就是无法全部匹配关键词的doc都不在结果集中。

3. /mlt (MoreLikeThisHandler)

MoreLikeThis查询,又叫以文找文。
 

4. /dataimport (DataImportHandler)

数据导入请求处理,需要配置相应的数据源配置文件:

<str name="config">data-config.xml</str>

5. /update (XmlUpdateRequestHandler)

更新Document请求处理
 
6. /analysis (AnalysisRequestHandler)
分析请求处理
 
 
standard和Dismax的区别

  • Standard要求输入的查询内容符合SolrQuerySyntax查询语法,特殊字符要进行转义。如果不符合语法,会报错。Dismax查询就不会存在这样的问题,对于用户的输入始终都不会报错。
  • 如何想在title和Subject两个Field中查找包含Superman的索引?
    • The standard request handler uses SolrQuerySyntax for q:
    • q=title:superman subject:superman
    • Using the dismax request handler, specify the query fields using the qf param.
    • q=superman&qf=title subject
  • 如何让Title Field中的得分权重比Subject Field中的高?
    • For the standard request handler, "boost" the clause on the title field:
    • q=title:superman^2 subject:superman
    • Using the dismax request handler, one can specify boosts on fields in parameters such as qf:
    • q=superman&qf=title^2 subject

Solr相关概念详解:SolrRequestHandler的更多相关文章

  1. Solr部署详解

    Solr部署详解 时间:2013-11-24 方式:转载 目录 1 solr概述 1.1 solr的简介 1.2 solr的特点 2 Solr安装 2.1 安装JDK 2.2 安装Tomcat 2.3 ...

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

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

  3. Solr系列三:solr索引详解(Schema介绍、字段定义详解、Schema API 介绍)

    一.Schema介绍 1. Schema 是什么? Schema:模式,是集合/内核中字段的定义,让solr知道集合/内核包含哪些字段.字段的数据类型.字段该索引存储. 2. Schema 的定义方式 ...

  4. Solr高亮详解

    hl.fl: 用空格或逗号隔开的字段列表.要启用某个字段的highlight功能,就得保证该字段在schema中是stored.如果该参数未被给出,那么就会高亮默认字段 standard handle ...

  5. Solr查询详解

    前言:上节是关于Solr的开发准备工作:.NET开发过程中的全文索引使用技巧之Solr(http://www.cnblogs.com/johnwood/p/3447242.html) 这节重点是讲So ...

  6. Windows下安装solr步骤详解

    Solr是一个独立的企业级搜索应用服务器,它对外提供类似于Web-service的API接口.用户可以通过http请求,向搜索引擎服务器提交一定格式的XML文件,生成索引:也可以通过Http Get操 ...

  7. Solr DocValues详解

    前言: 在Lucene4.x之后,出现一个重大的特性,就是索引支持DocValues,这对于广大的solr和elasticsearch用户,无疑来说是一个福音,这玩意的出现通过牺牲一定的磁盘空间带来的 ...

  8. Solr系列六:solr搜索详解优化查询结果(分面搜索、搜索结果高亮、查询建议、折叠展开结果、结果分组、其他搜索特性介绍)

    一.分面搜索 1. 什么是分面搜索? 分面搜索:在搜索结果的基础上进行按指定维度的统计,以展示搜索结果的另一面信息.类似于SQL语句的group by 分面搜索的示例: http://localhos ...

  9. Oracle 相关概念详解

    一.前言 笔者对于Oracle数据库的理解,很长时间停留在“镜花水月”的状态,你说不懂吧,又会用,一较真起来吧,对一些基本概念又说不出一个道道来~如果想要在编码的路上走得更远,这个必定也是绕不过的坎, ...

随机推荐

  1. 【Python】网络编程

    1.TCP编程 2.SocketServer模块 3.Twisted框架 4.UDP编程 1.TCP编程--TCP是面向连接的,其一般的设计如下: # encoding:utf-8 ''' Creat ...

  2. JVM 崩溃 Failed to write core dump解决办法 WINDOWS

    JVM 崩溃 Failed to write core dump解决办法 WINDOWS MIT key words: JVM,崩溃,windows,Failed,core dump,虚拟内存 最近从 ...

  3. 【BZOJ】【1863】【ZJOI2006】trouble 皇帝的烦恼

    二分+DP Orz KuribohG 神题啊= = 满足单调性是比较显然的…… 然而蒟蒻并不会判断能否满足……QwQ 神一样的DP姿势:f[i]表示第 i 个与第1个最多有多少个相同,g[i]表示最少 ...

  4. Vim配置文件(Vimrc)

    嘛……后面的比赛基本都是在NOI Linux下进行了,windows下的开发环境基本都不能用了>_>果断转了vim,记录一下vim的配置文件- set nu syntax on filet ...

  5. JAVA数据结构系列 栈

    java数据结构系列之栈 手写栈 1.利用链表做出栈,因为栈的特殊,插入删除操作都是在栈顶进行,链表不用担心栈的长度,所以链表再合适不过了,非常好用,不过它在插入和删除元素的时候,速度比数组栈慢,因为 ...

  6. ios kvo

    kvo的使用方法: 1.注册: -(void)addObserver:(NSObject *)anObserver forKeyPath:(NSString *)keyPath options:(NS ...

  7. 简单CSS hack:区分IE6、IE7、IE8、Firefox、Opera

    一.跨浏览器的网页设计一直是让人很头疼的问题,这不只是因为浏览器的版本众多,还有一个重要的原因是相同浏览器的不同时期的版本也会有差异,甚至是在不同操作同台上还会有不同.因此使CSS hack技术进行浏 ...

  8. 去“IOE”

    所谓去“IOE”,是对去“IBM.Oracle.EMC”的简称,三者均为海外IT巨头,其中IBM代表硬件以及整体解决方案服务商,Oracle代表数据库,EMC代表数据存储.去“IOE”策略更广泛的理解 ...

  9. Pytho中两种方式导入模块的差别

    1.使用import module,只是把模块导入,访问模块中的函数名或者是属性是必须使用点运算符(.)来访问,否则直接访问会提示找不到这些函数或者属性. 2.使用from numpy import ...

  10. HDU 1686 Oulipo , 同 POJ 3461 Oulipo (字符串匹配,KMP)

    HDU题目 POJ题目 求目标串s中包含多少个模式串p KMP算法,必须好好利用next数组,, (kmp解析)——可参考 海子的博客  KMP算法 //写法一: #include<string ...