一个搜索查询由一个request handler处理,它调用一个query parser来解析查询的词语和参数。默认的query parser是DisMax,Solr也包含Standard (Lucene),和Extended DisMax (eDisMax) query parser.

Standard的搜索语法要求更高准确性,但DisMax容错性更好,像Google等流行搜索引擎一样很少向用户展示搜索语法错误,eDisMax是DisMax的改进,在容错的同时处理所有Lucene查询语法。

Query语法与解析

所有Query Parser插件都是QparserPlugin的子类,如果你想自定义,则需要继承它以实现自己的QueryParser。

共通查询参数

defType 选择query parser用于处理主查询参数(q),如defType=dismax, 默认使用Standard Query Parser.

sort    在指定域上升降序排列(asc,desc)

start

rows

fq      过滤查询

fl       Field List, 限制返回的参数列表, (*score 返回所有域和分数)

fl=id,title,product(price,popularity),用函数计算伪域

debug   debug=timing/results/query

explainOther

timeAllowed 返回指定时间内找到的结果

omitHeader  不返回响应头

wt          Response Writer

cache=false    

logParamsList  限制记录日志参数 logParamsList=q,fq

The Standard Query Parser

从Solr 1.3开始,Standard Request Handler调用DisMax query parser作为默认parser.

q     使用标准语法定义一个查询

q.op 指定默认操作符 "AND"or "OR",(自动分词后)词之间操作符(非域之间)。

df    指定一个默认搜索域

The DisMax Query Parser

DisMax(Maximum Disjunction)设计用于处理用户输入的简单短语,并且以不同权重在不同域上搜索。附加的选项使用户可以基于不同用例来影响打分。

q    定义查询的原始输入

q.alt 如果指定,当q参数没有指定或为空时,作为查询。

qf    Query Fields, 指定查询的域列表,每个域可以指定一个因子用于增强或减弱域的重要性。如果未指定,默认使用df.

mm   Minimum "Should"Match:一个查询中最少需要匹配的字段,如果mm=1,则相当于OR;

pf     Phrase Fields:对q参数中所有词语都近邻出现的文档加分。

ps     Phrase Slop: 指定两个词间的距离,以匹配特定短语。

qs     Query Phrase Slop: 指定两个词间的距离,以匹配特定短语。与qf参数一起特别使用。

tie     Tie breaker: 打破平局

bq    Boost Query: 指定一个因子使词或短语在匹配时重要性“增加”。

bf      Boost Function: 指定增强函数

q.op   AND,OR  输入关键词中用空格分隔的短语之间的匹配关系(不用空格无效,不是自动分词后的词间关系,区别于Standard)。

Solr Searching相关推荐

  1. Solr Searching(一)

    In this chapter, you are going to learn about: •     Request handlers •     Query parameters •     S ...

  2. 搜索引擎之---Apache solr的实现

    Solr 是一种可供企业使用的.基于 Lucene 的搜索服务器,它支持层面搜索.命中醒目显示和多种输出格式.在这篇分两部分的文章中,Lucene Java™ 的提交人 Grant Ingersoll ...

  3. 实时分布式搜索引擎比较(senseidb、Solr、elasticsearch)

    1 1. Solr 1.1 Features 1.2 Pros & Cons 1.3 References 2 2. Senseidb 2.1 Features 2.2 Pros & ...

  4. ElasticSearch,Sphinx,Lucene,Solr,Xapian。哪种适合哪种用途? [关闭]

    我目前正在寻找其他搜索方法,而不是拥有一个巨大的SQL查询. 我最近看到了弹性搜索并玩弄了嗖 (搜索引擎的Python实现). 你能说出你的选择理由吗? #1楼 我的sphinx.conf sourc ...

  5. Guide: Solr performance tuning--转载

    原文地址:http://h3x.no/2011/05/10/guide-solr-performance-tuning Introduction I have for the last year be ...

  6. Importing/Indexing database (MySQL or SQL Server) in Solr using Data Import Handler--转载

    原文地址:https://gist.github.com/maxivak/3e3ee1fca32f3949f052 Install Solr download and install Solr fro ...

  7. 使用solr的完整流程

    本文摘要 一.下载与安装 二.运行solr 三.创建core实例 四.配置schema 五.DIH导入数据 六.solrJ(java客户端) 本文所用到的工具 Postman :简单说就是一个可以发送 ...

  8. 【solr基础教程之二】索引

    一.向Solr提交索引的方式 1.使用post.jar进行索引 (1)创建文档xml文件 <add><doc><field name="id"> ...

  9. 【转载】 Searching过程粗略梳理

    转载自:http://www.cnblogs.com/huangfox/archive/2012/02/09/2344686.html solr-searching过程分析(一) --searchin ...

最新文章

  1. C++ 中 inline 用法概述
  2. Google X垃圾分类机器人横空出世,再也不怕分不清干垃圾湿垃圾有害垃圾了
  3. Java,开源,分享
  4. 系列TCP/IP协议-动态IP选路协议(008)
  5. Java【第九篇】异常处理
  6. ffmpeg处理RTMP流媒体的命令 发送流媒体的命令(UDP,RTP,RTMP)
  7. 计算机网络简答题与计算题
  8. redis 字符串基本操作
  9. 15. 从远程库克隆
  10. 10.22~10.28一周经典题目整理(meeting,BZOJ4377,POJ3659)
  11. 机顶盒网络包获取方式
  12. LM2596有没有可以替代的?LM2576可以
  13. 学会怎么买一折飞机票
  14. 【OpenGL ES】着色语言GLSL
  15. 如何批量修改照片后缀名
  16. iOS开发之企业开发者账号打包发布 App 到服务器上的流程
  17. BIOS中断大全(表格)
  18. Flutter自定义Widget之炫酷粒子时钟效果
  19. sdut——4541:小志志和小峰峰的日常(取石子博弈模板题 4合1)
  20. python变量名区分大小写_Python变量名区分大小写,所以student和Student不是同一个变量。...

热门文章

  1. Unity实现智能巡逻兵小游戏
  2. 在线HTML美化格式化工具
  3. λ兰姆达lambda表达式
  4. 21 高斯的推导(1809)
  5. 一、版本控制工具简介
  6. I am a student. student.a am I
  7. Maven的工程类型有哪些?
  8. 03——go开发工具
  9. python在心理学研究中的应用有哪些_心理学的应用有哪些?
  10. ABtest介绍,示例