转载请声明出处,谢谢。翻译也很辛苦
4.2.3 .。浏览Solritas请求处理程序:一个例子
从客户端代码隐藏复杂性是web服务和面向对象设计的核心。Solr采用这个证明设计模式允许您定义一个自定义搜索请求处理程序为您的应用程序,它允许您从Solr隐藏复杂性客户机。而不是要求每个查询发送正确的参数来启用拼写校正,例如,您可以使用一个自定义默认启用拼写纠正的请求处理程序。
Solr示例服务器已预设的一个很好的例子,该设计模式在工作中支持Solritas示例应用程序。该清单显示了一个缩写的定义从solrconfig.xml /浏览请求处理程序。
清单4.6。浏览Solritas请求处理程序
我们建议你经历的所有部分在solrconfig /浏览请求处理程序。xml文件。一件事应该是显而易见的是,大量的精力配置这个处理程序,以证明在Solr许多伟大的功能。当开始Solr,你绝对不需要配置为应用程序类似。您可以建立一个自定义请求处理程序与Solr随着时间的推移你获得的经验。
图4.6。截图Solritas示例使用/brower请求处理程序
扫描图4.6,看看所有的搜索功能激活这个简单的查询。在幕后,Solritas搜索表单提交一个查询/浏览请求处理程序。在日志中,我们看到
INFO: [collection1] webapp=/solr path=/browse params={q=iPod} hits=3 status=0 QTime=22
注意,只有搜索表单发送的参数q = iPod,但是响应包括方面,更多的像这样的,拼写校正,分页,高亮显示。一系列令人印象深刻的特性的一个简单的请求像q = iPod !正如你可能已经猜到了,这些特性被启用使用默认参数/browse请求处理程序。
清单4.6中的默认值元素是有序列表的名称/值对,提供查询参数的默认值,如果他们不明确的客户端应用程序发送的。例如,response-writer类型参数的默认值重量velocity (velocity )。velocity是一个开源的模板引擎用Java编写的(http://velocity.apache.org/engine/index.html)。
根据先前的日志消息,唯一的形式发送的参数是q,所有其他参数都设置的默认值。让我们做一个实验,看看真正的查询处理。而不是使用response-writer类型velocity,让我们将重量参数设置为xml,这样我们就能看到响应在原始形式提供的HTML装饰velocity。同时,为了看到所有查询参数,我们需要设置echoParams值。这是一个很好的例子重写默认值的显式地从客户机传递参数。下一个清单显示了查询URL和元素的一部分返回响应;请记住,您可以使用http工具提供这本书的源代码来执行这个请求。注意参数的数量发送到/browse请求处理程序是相当大的。
清单4.7。参数列表发送到/bowse请求处理程序q = iPod
从看清单,它应该清楚,参数装饰在Solr搜索请求处理程序是一个强大的特性。具体来说,默认列表应用程序提供了两个主要的好处:
•它有助于简化客户端代码通过建立合理的默认值为您的应用程序在一个地方。例如,设置response-writer类型wt
Velocity 意味着客户机应用程序不需要担心设置该参数。此外,如果你速度换成另一个模板引擎,您的客户端代码不需要改变!
•等preconfiguring复杂的组件分类,可以为所有查询建立一致的行为,同时保持你的客户端代码简单。如清单4.7中,您可以看到从请求包含许多复杂的参数需要配置搜索组件由Solritas使用。有20多个参数配置为Solritas分类组件。
/bowse处理程序作为一个很好的例子与Solr查询处理什么是可能的,但它也不太可能,它可以使用您的应用程序,因为
默认参数是Solritas紧密耦合的数据模型。例如,价格范围分类配置,流行,和manufacturedate_dt字段,这是特定于Solritas模式和可能不适用于您的应用程序。因此,你应该把/浏览处理程序作为一个例子,不是100%的可重用的解决方案,在设计自己的特定于应用程序的请求处理程序。
4.2.4。与搜索组件扩展查询处理
除了一组默认值,/bowse请求处理程序定义了一个数组搜索组件适用于请求后默认组搜索组件是使用元素应用。清单4.6中,注意到指定/bowse请求处理程序
spellcheck
这种配置意味着搜索组件的默认设置,然后拼写检查组件。这是一个常见的设计模式搜索请求处理程序。图4.7显示了六个内置搜索组件链,应用在阶段查询处理。
图4.7。六个内置搜索组件链
查询组件
查询组件是Solr的方法将管道的核心。在高级别上,查询组件使用主动搜索解析和执行查询,这是在4.3节讨论。具体query-parsing策略由defType控制参数。例如,/浏览请求处理程序使用eDisMax查询解析器( eDisMax ),这将在第7章讨论。
查询组件标识相匹配的所有文档索引查询。匹配文档的设置可以使用的方法将链中的其他组件,组件等方面。查询组件总是启用,需要显式地启用和所有其他组件使用查询参数。
Facet component
给定一个查询结果集标识的组件,facet组件,如果启用,计算字段级方面。我们在第八章深入讨论分类。外卖现在是分类的关键是构建到每一个搜索请求,它需要启用查询请求参数。启用/浏览,分类使用默认参数: 。
More Like This component
给出一个结果集查询创建的组件,该组件的更像,如果启用,识别其他文档类似于文档在搜索结果中。看到更像这个组件的一个例子,搜索硬盘驱动器的Solritas例子。单击该链接更像“三星SpinPoint P120 SP2514N – – 250 GB硬盘ata – 250”结果看到类似的文档的列表,如图4.8所示。
图4.8。例子,More LIke This搜索组件
我们覆盖了更多这样的组件在16章。
Highlight component
如果启用,强调组件强调高度相关的文本匹配的文档。在第9章强调覆盖。
Stats component
数据组件计算之类的简单统计最小,最大,,意思是,和标准偏差的数值字段匹配的文档。看到的数据组件的一个例子,执行GET请求,如清单4.8所示。
清单4.8。请求摘要统计信息字段使用统计组件价格
Request
Response
Debug component
调试组件返回解析查询字符串,执行和详细的信息关于每个文档的得分计算返回的结果集。解析查询值来帮助你追踪query-formulation问题。调试组件是用于故障诊断的排名问题。看到调试组件在工作,直接你的浏览器
http://localhost:8983/solr/collection1/browse?q=iPod&wt=xml&debugQuery=true.
注意,这是我们从Solritas执行相同的查询形式,除非我们改变了response-writer类型wt xml(而非velocity)和启用调试组件使用HTTP GET请求中的debug = true。下面的清单显示了XML输出的一个片段产生的调试组件。
清单4.9。片段产生的XML输出调试组件
注意single-term iPod用户输入的查询结果在一个相当复杂的查询由许多促进众多领域。更复杂的查询是由eDisMax查询解析器,它由defType参数启用下违约。eDisMax解析器在第7章。
添加last-component拼写检查
内置搜索组件处理请求后,解释清楚/bowse搜索处理程序调用组件,在上市阶段。该清单显示了拼写检查的定义从solrconfig.xml组件。
清单4.10。定义一个搜索组件做拼写检查
注意组件的名称“拼写检查”匹配是什么部分中列出的/浏览请求处理程序。你需要更多的背景在Solr的spelling-correction功能如何工作清单4.10中设置有意义,所以我们将在第10章回到此配置元素。外卖在这一点上,关键是看如何搜索组件添加到搜索请求处理管道使用。
此时,您应该有一个坚实的理解Solr如何处理查询请求。我们转向另一个配置主题之前,您应该意识到Solr管理控制台提供访问所有活跃的搜索插件/统计> QUERYHANDLER下请求处理程序。图4.9显示了/浏览搜索属性和数据处理程序,您可能已经猜到,是另一个MBean。
图4.9。截图显示属性和统计Solr /浏览请求处理程序的管理控制台插件/统计> QUERYHANDLER之下
现在让我们把注意力转到配置设置,帮助优化查询性能。
服务器托管,北京服务器托管,服务器租用 http://www.fwqtg.net
机房租用,北京机房租用,IDC机房托管, http://www.fwqtg.net
相关推荐: 前端食堂技术周刊第 81 期:4 月登陆 Web 平台的新内容、Angular v16
美味值:🌟🌟🌟🌟🌟 口味:黑加仑乌龙茶 食堂技术周刊仓库地址:https://github.com/Geekhyt/weekly 本期摘要 4 月登陆 Web 平台的新内容 Angular v16 Next.js 13.4 Qwik v1.0 5 月 Svel…