1.7.1 solr Searching概述
1. Overview of Searching in Solr
在用户运行一个solr搜索时,搜索查询会被request handler处理.一个request handler就是一个请求处理插件,这个插件定义了在solr处理请求时的请求处理逻辑 .solr支持多种request handler.一些用于搜索处理查询,然而其他的用于管理任务,如索引的replication(复制).
搜索应用选择了一部分request handler作为默认请求处理程序.另外,应用也可以被配置来允许用户重写request handler.
为了处理搜索查询,request handler调用query parser,用于解释查询的条件和参数.不同的查询解析(query parser)支持不同的语法.默认的查询解析器时DisMax解析器.
solr也包含一个早期的"standard" (Lucene) query parser, Extended DisMax(eDisMax) 查询解析器.标准(standard)查询解析器允许更精确的查询,DisMax查询解析容忍更多的错误.DisMax查询解析器的目的是提供一个类似于流行的搜索引擎如Google,很少显示语法错误给用户的搜索体验.扩展的DisMax是DisMax的一个提高版本,处理完全的Lucene的查询语法,同时还容忍语法错误。它还包括几个附加的特性.
另外,还有一些所有查询解析器可以接受的常用查询参数:
输入给一个查询解析器,需要包含如下:
- 搜索字符串,也就是索引中的查询短语.
- 参数 通过增加部分字符串或者字段的权重,通过应用布尔逻辑中的查询搜索条件,者通过从搜索结果中排除内容等来微调查询.
- 参数 用于控制查询结果的展示,如指定查询结果顺序,限制结果字段显示.
查询参数也许会指定query filter.作为搜索响应的一部分,查询过滤器对整个索引和缓存过滤查询结果.因为solr为查询过滤器分配了一个单独的缓存,战略性地使用过滤器的查询可以提高搜索性能(尽管名称相似,查询过滤器和分析过滤器是不相关的).
搜索查询可以请求一部分短语在搜索结果中高亮.solr支持多短语(multi-term)高亮.solr包含一个丰富的搜索参数设置用于控制高亮.
搜索响应也可以被配置成包括片段-snippets(文档摘要),具有高亮显示的文本.一些流行的搜索引擎如Google和Yahoo,返回搜索结果中的片段:3-4行文字,提供的一个搜索结果的描述。
solr支持两种方式进行分组查询,以帮助进一步探索:
Faceting是对搜索结果分类排列的功能(基于索引短语).在每个类别中,solr呈现了每个term命中的数量.分面很容易让用户探索网站上,如电影网站和产品评论网站,那里有许多类别和类别中的许多物品的搜索结果。
下面的图片从CNET网站分面的例子:
Clustering(聚类):在执行搜索时通过相似发现来分组搜索结果.聚类结果往往缺乏如分面搜索中那样的整齐的层次结构.但聚类仍然可以是有用的.它可以显示搜索结果中意想不到的共性,它可以帮助用户排除不相关的内容.
solr同样支持相似查询功能(MoreLikeThis).
response writer 管理查询响应的最终结果显示.solr包含多种的response writer.包含 XML Response Writer和JSON Response Writer.
下图总结了搜索过程中的一些关键要素:
1.7.1 solr Searching概述的更多相关文章
- solr 从零学习开始
2010-10 目 录 1 1.1 1.2 1.2.1 1.2.2 1.2.3 1.2.4 1.2.5 1.2.6 1.2.7 1.3 1.3.1 1.3.2 1.4 1.4.1 1.4.2 1.4. ...
- solr基础使用概述
概述:solr 作为搜索引擎系统,它应该包含两部分内容,分别是:索引系统 和 搜索系统. 索引系统 它主要负责将外部不同数据源的数据转换为 solr 格式规范的数据格式(我们称之为:SolrInput ...
- Solr第一讲——概述与入门
一.solr介绍 1.什么是solr Solr 是Apache下的一个顶级开源项目,采用Java开发,它是基于Lucene的全文搜索服务器.Solr可以独立运行在Jetty.Tomcat等这些Serv ...
- Solr学习笔记(4) —— SolrCloud的概述和搭建
一.概述 1.1 什么是SolrCloud Lucene是一个Java语言编写的利用倒排原理实现的文本检索类库: Solr是以Lucene为基础实现的文本检索应用服务.Solr部署方式有单机方式.多机 ...
- Solr学习笔记(1) —— Solr概述&Solr的安装
一.概述 使用Solr实现电商网站中商品信息搜索功能,可以根据关键字.分类.价格搜索商品信息,也可以根据价格进行排序. 1.1 实现方法 在一些大型门户网站.电子商务网站等都需要站内搜索功能,使用传统 ...
- Solr:Slor初识(概述、Windows版本的安装、添加IK分词器)
1.Solr概述 (1)Solr与数据库相比的优势 搜索速度更快.搜索结果能够按相关度排序.搜索内容格式不固定等 (2)Lucene与Solr的区别 Lucene提供了完整的查询引擎和索引引擎,目的是 ...
- Solr入门之(1)前言与概述
一.前言:为何选择Solr 由于搜索引擎功能在门户社区中对提高用户体验有着重在门户社区中涉及大量需要搜索引擎的功能需求,目前在实现搜索引擎的方案上有几种方案可供选择: 1. 基于Lucene自己进行封 ...
- Solr集群的搭建概述(非教程)
1.什么是SolrCloud SolrCloud(solr 云)是Solr提供的分布式搜索方案,当你需要大规模,容错,分布式索引和检索能力时使用 SolrCloud.当一个系统的索引数据量少的时候是不 ...
- Solr搜索解析及查询解析器用法概述
一.简介 大多数查询都使用 了标准的Solr语法.这种语法是Solr最常见的,由默认查询解析器负责处理.Solr的默认查询解析器是Lucene查询解析器[LuceneQParserPlugin类实现] ...
随机推荐
- Spark生态系统BDAS
目前,Spark已经发展成为包含众多子项目的大数据计算平台. 伯克利将Spark的整个生态系统称为伯克利数据分析栈(BDAS). 其核心框架是Spark,同时BDAS涵盖支持结构化数据SQL查询与分析 ...
- 自定义元素 – 在 HTML 中定义新元素
本文翻译自 Custom Elements: defining new elements in HTML,在保证技术要点表达准确的前提下,行文风格有少量改编和瞎搞. 原译文地址 本文目录 引言 用时髦 ...
- LeetCode292:Nim Game
You are playing the following Nim Game with your friend: There is a heap of stones on the table, eac ...
- linux运维工程师
本人是linux运维工程师,对这方面有点心得,现在我说说要掌握哪方面的工具吧说到工具,在行外可以说是技能,在行内我们一般称为工具,就是运维必须要掌握的工具.我就大概列出这几方面,这样入门就基本没问题了 ...
- 进入GRUB改root用户密码
开机读取倒计时时按任意键----e---->选择第二行 kernel ---->按e, 再按空格 >输入1----回车--->选择kernel输入b----> passw ...
- CreateEvent的用法
事件对象就像一个开关:它只有两种状态---开和关.当一个事件处于”开”状态,我们称其为”有信号”否则称为”无信号”.可以在一个线程的执行函数中创建一个事件对象,然后观察它的状态,如果是”无信号”就让该 ...
- C++中回调函数(CallBack)的使用
如果试图直接使用C++的成员函数作为回调函数将发生错误,甚至编译就不能通过. 其错误是普通的C++成员函数都隐含了一个传递函数作为参数,亦即“this”指针,C++通过传递this指针给其成员函数从而 ...
- Ehcache(06)——监听器
http://haohaoxuexi.iteye.com/blog/2119353 监听器 Ehcache中监听器有两种,监听CacheManager的CacheManagerEventListene ...
- Linux 网络编程 高级套接字
一.套接字选项: 有以下3中方式可以对套接字选项进行设置: getsockopt 和 setsockopt 函数 fcntl函数 ioctl函数 getsockopt和setsockopt函数用于获得 ...
- word wrap 解惑
源起 我们经常需要“修复”一个老生常谈的“bug”,那就是文本的自动换行问题.在专业术语上,这种期望得到的渲染现象被称作“word wrap”,即文本处理器有能力把超出页边的整个词自动传到下一行. 在 ...