热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

4.跟我学solr---SolrRequestHandler详解

概述我们在使用solradmin在做查询的时候,可以看到Request-Hander(qt)输入栏中有“select”这样一个uri,当我们点击查询的时候所发起的请求是这样的,http:loc

概述

我们在使用solr admin在做查询的时候,可以看到Request-Hander(qt)输入栏中有“/select”这样一个uri,当我们点击查询的时候所发起的请求是这样的,http://localhost:8080/solr/collection1/select?q=feature&wt=json&indent=true&_=1399167234058,我们可以看到"/select"被自动地加到请求的url里面。那么solr服务在接受到这个请求的时候,就会根据"/select"这段uri来选择对应的RequestHandler。


那“/select”这个RequestHandler到底配置在哪里呢?我们打开我们之前所配置的SOLR_HOME目录,在SORL_HOME\collection1\conf\目录下的solrconfig.xml文件中,我们找到如下配置,这个就是“/select”所对对应的RequestHandler了。

   


explicit
10
text


Configuration

多个handlers (包括是相同的类的实例,却拥有不同的配置) 能够在solrconfig.xml 中配置。

  



10
*
2.1





Handler Resolution

客户端可以通过带有“gt”这个参数的“/select/ url”请求,也可以通过在solrconfig.xml配置的方式来决定要访问的SolrRequestHandler。对于上面的例子,假设它运行在localhost:8080/solr/上,你能够这样访问
  http://localhost:8080/solr/select/?qt=foo&...
  http://localhost:8080/solr/select/?qt=bar&...
  http://localhost:8080/solr/baz?...
  http://localhost:8080/solr/update/my-pdf-reader?...


Solr是通过下面的步骤去选择一个handler并处理请求的.....
寻找name属性跟请求中的qt参数匹配的handler
寻找在配置文件中“default=true”的handler
寻找在配置文件中name属性为“standad”的handler
使用StandardRequestHandler的默认实例


注意!如果你的配置文件solrconfig.xml 包含有name属性为"/select", "/update", 或"/admin",那么你的程序将不会沿用标准的请求处理过程,而将会是你自己自定义的逻辑。


扩展自己的Handler

实现一个SolrRequestHandler 最简单的方法是去扩展 RequestHandlerBase 类。也参考下面的几个Request Handlers。

solr自带的Handler

目前solr提供如下handler给大家使用,下面给出的solr官方文档中hander的文档,如果大家觉得有必要让笔者详细解析每个handler的用法,可以回复一下,笔者将会在接下来的章节中为大家讲解每个handler的具体用法。

Search handlers:

  • DisMaxRequestHandler

  • LukeRequestHandler

  • MoreLikeThisHandler

  • SearchHandler

  • SpellCheckerRequestHandler

Update handlers:

  • DataImportHandler

  • BinaryUpdateRequestHandler

  • CSVUpdateRequestHandler

  • ExtractingRequestHandler

  • JsonUpdateRequestHandler

  • XmlUpdateRequestHandler

  • XsltUpdateRequestHandler




推荐阅读
  • http:my.oschina.netleejun2005blog136820刚看到群里又有同学在说HTTP协议下的Get请求参数长度是有大小限制的,最大不能超过XX ... [详细]
  • 在重复造轮子的情况下用ProxyServlet反向代理来减少工作量
    像不少公司内部不同团队都会自己研发自己工具产品,当各个产品逐渐成熟,到达了一定的发展瓶颈,同时每个产品都有着自己的入口,用户 ... [详细]
  • spring cloud eureka微服务之间如何调用
    小编给大家分享一下springcloudeureka微服务之间如何调用,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇 ... [详细]
  • 如何实现织梦DedeCms全站伪静态
    本文介绍了如何通过修改织梦DedeCms源代码来实现全站伪静态,以提高管理和SEO效果。全站伪静态可以避免重复URL的问题,同时通过使用mod_rewrite伪静态模块和.htaccess正则表达式,可以更好地适应搜索引擎的需求。文章还提到了一些相关的技术和工具,如Ubuntu、qt编程、tomcat端口、爬虫、php request根目录等。 ... [详细]
  • 本文总结了Java中日期格式化的常用方法,并给出了示例代码。通过使用SimpleDateFormat类和jstl fmt标签库,可以实现日期的格式化和显示。在页面中添加相应的标签库引用后,可以使用不同的日期格式化样式来显示当前年份和月份。该文提供了详细的代码示例和说明。 ... [详细]
  • Spring源码解密之默认标签的解析方式分析
    本文分析了Spring源码解密中默认标签的解析方式。通过对命名空间的判断,区分默认命名空间和自定义命名空间,并采用不同的解析方式。其中,bean标签的解析最为复杂和重要。 ... [详细]
  • 知识图谱——机器大脑中的知识库
    本文介绍了知识图谱在机器大脑中的应用,以及搜索引擎在知识图谱方面的发展。以谷歌知识图谱为例,说明了知识图谱的智能化特点。通过搜索引擎用户可以获取更加智能化的答案,如搜索关键词"Marie Curie",会得到居里夫人的详细信息以及与之相关的历史人物。知识图谱的出现引起了搜索引擎行业的变革,不仅美国的微软必应,中国的百度、搜狗等搜索引擎公司也纷纷推出了自己的知识图谱。 ... [详细]
  • 深入理解CSS中的margin属性及其应用场景
    本文主要介绍了CSS中的margin属性及其应用场景,包括垂直外边距合并、padding的使用时机、行内替换元素与费替换元素的区别、margin的基线、盒子的物理大小、显示大小、逻辑大小等知识点。通过深入理解这些概念,读者可以更好地掌握margin的用法和原理。同时,文中提供了一些相关的文档和规范供读者参考。 ... [详细]
  • SpringMVC工作流程概述
    SpringMVC工作流程概述 ... [详细]
  • 部署solr建立nutch索引
    2019独角兽企业重金招聘Python工程师标准接着上篇nutch1.4的部署应用,我们来部署一下solr,solr是对lucene进行了封装的企 ... [详细]
  • 美国制造工程协会(AmericanSocietyofManufacturingEngineers,ASME)机器视觉分会和美国机器人工业协会(RoboticIndustriesAs ... [详细]
  • camel_使用Camel在来自不同来源的Solr中索引数据
    camelApacheSolr是建立在Lucene之上的“流行的,快速的开源企业搜索平台”。为了进行搜索(并查找结果),通常需要从不同的源(例如内容管理 ... [详细]
  • 首先我们在taotao-search-interface工程中新建一个SearchService接口,并在接口中添加一个方法,如下图所示。接着,我们到taotao-search-s ... [详细]
  • solr倒排索引(转载)
    原文地址:http:blog.csdn.netchichengitarticledetails9235157http:blog.csdn.netnjpjsoftdevarticle ... [详细]
  • Flume 开源分布式日志收集系统
    为什么80%的码农都做不了架构师?Flume--开源分布式日志收集系统Flume是Cloudera提供的一个高可用的、高可靠的开源分布式海量日志收集系统 ... [详细]
author-avatar
E-sc68
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有