1.7.1 solr Searching概述

时间:2022-09-23 07:25:30

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网站分面的例子:

1.7.1 solr Searching概述

  Clustering(聚类):在执行搜索时通过相似发现来分组搜索结果.聚类结果往往缺乏如分面搜索中那样的整齐的层次结构.但聚类仍然可以是有用的.它可以显示搜索结果中意想不到的共性,它可以帮助用户排除不相关的内容.

  solr同样支持相似查询功能(MoreLikeThis).

  response writer 管理查询响应的最终结果显示.solr包含多种的response writer.包含 XML Response Writer和JSON Response Writer.

  下图总结了搜索过程中的一些关键要素:

1.7.1 solr Searching概述

1.7.1 solr Searching概述的更多相关文章

  1. 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. ...

  2. solr基础使用概述

    概述:solr 作为搜索引擎系统,它应该包含两部分内容,分别是:索引系统 和 搜索系统. 索引系统 它主要负责将外部不同数据源的数据转换为 solr 格式规范的数据格式(我们称之为:SolrInput ...

  3. Solr第一讲——概述与入门

    一.solr介绍 1.什么是solr Solr 是Apache下的一个*开源项目,采用Java开发,它是基于Lucene的全文搜索服务器.Solr可以独立运行在Jetty.Tomcat等这些Serv ...

  4. Solr学习笔记(4) —— SolrCloud的概述和搭建

    一.概述 1.1 什么是SolrCloud Lucene是一个Java语言编写的利用倒排原理实现的文本检索类库: Solr是以Lucene为基础实现的文本检索应用服务.Solr部署方式有单机方式.多机 ...

  5. Solr学习笔记(1) —— Solr概述&Solr的安装

    一.概述 使用Solr实现电商网站中商品信息搜索功能,可以根据关键字.分类.价格搜索商品信息,也可以根据价格进行排序. 1.1 实现方法 在一些大型门户网站.电子商务网站等都需要站内搜索功能,使用传统 ...

  6. Solr:Slor初识(概述、Windows版本的安装、添加IK分词器)

    1.Solr概述 (1)Solr与数据库相比的优势 搜索速度更快.搜索结果能够按相关度排序.搜索内容格式不固定等 (2)Lucene与Solr的区别 Lucene提供了完整的查询引擎和索引引擎,目的是 ...

  7. Solr入门之(1)前言与概述

    一.前言:为何选择Solr 由于搜索引擎功能在门户社区中对提高用户体验有着重在门户社区中涉及大量需要搜索引擎的功能需求,目前在实现搜索引擎的方案上有几种方案可供选择: 1. 基于Lucene自己进行封 ...

  8. Solr集群的搭建概述(非教程)

    1.什么是SolrCloud SolrCloud(solr 云)是Solr提供的分布式搜索方案,当你需要大规模,容错,分布式索引和检索能力时使用 SolrCloud.当一个系统的索引数据量少的时候是不 ...

  9. Solr搜索解析及查询解析器用法概述

    一.简介 大多数查询都使用 了标准的Solr语法.这种语法是Solr最常见的,由默认查询解析器负责处理.Solr的默认查询解析器是Lucene查询解析器[LuceneQParserPlugin类实现] ...

随机推荐

  1. rsync同步架构

    1.1 rsync服务器端配置 1.1.1 查看服务器端rsync版本 1.1.2 创建配置文件 默认安装好rsync程序后,并不会自动创建rsync的主配置文件,需要手工来创建,其主配置文件为“/e ...

  2. 利用node来下载图片到本地

      本文是针对于知道图片地址的下载图片方法. 同时也是我的处男作(额,怪怪的〜);不要在意这些细节. 最近在弄项目迁移,需要把http的链接全换成https的:以前的cms不支持http的协议,然后就 ...

  3. iOS开发之网络编程--使用NSURLConnection实现文件上传

    前言:使用NSURLConnection实现文件上传有点繁琐.    本文并没有介绍使用第三方框架上传文件. 正文: 这里先提供用于编码测试的接口:http://120.25.226.186:3281 ...

  4. H5实现拍照并上传

    <!DOCTYPE HTML><html><head>    <meta charset="UTF-8">    <meta ...

  5. 2014&lowbar;acmicpc&lowbar;shanghai&lowbar;google

    I http://acm.hust.edu.cn/vjudge/contest/view.action?cid=84975#problem/I 题意:我方有n个士兵,敌方有m个士兵,每个士兵有攻击力和 ...

  6. Nginx目录保护、防盗链、限速及多域名处理

    http://www.opsers.org/server/nginx-directory-protection-anti-hotlinking-processing-speed-and-multi-d ...

  7. jstl 保留两位小数

    简介:jstl保留两位小数实现方法在JSP开头导入以下标签:<%@tagliburi="http://java.sun.com/jsp/jstl/fmt"pre jstl 保 ...

  8. SpringMVC数据绑定

    SpringMVC学习系列(5) 之 数据绑定-2   在系列(4)中我们介绍了如何用@RequestParam来绑定数据,下面我们来看一下其它几个数据绑定注解的使用方法. 1.@PathVariab ...

  9. 洛谷P3203 &lbrack;HNOI2010&rsqb;弹飞绵羊(LCT&comma;Splay)

    洛谷题目传送门 关于LCT的问题详见我的LCT总结 思路分析 首先分析一下题意.对于每个弹力装置,有且仅有一个位置可以弹到.把这样的一种关系可以视作边. 然后,每个装置一定会往后弹,这不就代表不存在环 ...

  10. 实现简单的ssh功能

    客户端代码: # -*- coding=utf-8 -*- __Author__ = "Dennis" import socket client = socket.socket() ...