solr in action翻译- 第四章配置Solr 4.3

转载请声明出处,谢谢。翻译也很辛苦 

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中的默认值< 1st >元素是有序列表的名称/值对,提供查询参数的默认值,如果他们不明确的客户端应用程序发送的。例如,response-writer类型参数的默认值重量velocity (velocity < str name = " wt " > < / str >)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请求处理程序定义了一个数组< arr >搜索组件适用于请求后默认组搜索组件是使用< last-components >元素应用。清单4.6,注意到指定/bowse请求处理程序

<arr name="last-components">

<str>spellcheck</str>

</arr>

 

这种配置意味着搜索组件的默认设置,然后拼写检查组件。这是一个常见的设计模式搜索请求处理程序。图4.7显示了六个内置搜索组件链,应用在<components>阶段查询处理。

4.7。六个内置搜索组件链

 

查询组件

查询组件是Solr的方法将管道的核心。在高级别上,查询组件使用主动搜索解析和执行查询,这是在4.3节讨论。具体query-parsing策略由defType控制参数。例如,/浏览请求处理程序使用eDisMax查询解析器(< str name = " defType " > eDisMax < / str >),这将在第7章讨论。

 

查询组件标识相匹配的所有文档索引查询。匹配文档的设置可以使用的方法将链中的其他组件,组件等方面。查询组件总是启用,需要显式地启用和所有其他组件使用查询参数。

 

Facet component

给定一个查询结果集标识的组件,facet组件,如果启用,计算字段级方面。我们在第八章深入讨论分类。外卖现在是分类的关键是构建到每一个搜索请求,它需要启用查询请求参数。启用/浏览,分类使用默认参数:< str name = "facet" > < / str >

 

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搜索处理程序调用组件,< last-components >上市阶段。该清单显示了拼写检查的定义从solrconfig.xml组件。

清单4.10。定义一个搜索组件做拼写检查



 

注意组件的名称拼写检查匹配是什么< last-components >部分中列出的/浏览请求处理程序。你需要更多的背景在Solrspelling-correction功能如何工作清单4.10中设置有意义,所以我们将在第10章回到此配置元素。外卖在这一点上,关键是看如何搜索组件添加到搜索请求处理管道使用< last-components >

 

此时,您应该有一个坚实的理解Solr如何处理查询请求。我们转向另一个配置主题之前,您应该意识到Solr管理控制台提供访问所有活跃的搜索插件/统计> QUERYHANDLER下请求处理程序。图4.9显示了/浏览搜索属性和数据处理程序,您可能已经猜到,是另一个MBean

 

4.9。截图显示属性和统计Solr /浏览请求处理程序的管理控制台插件/统计> QUERYHANDLER之下



 
现在让我们把注意力转到配置设置,帮助优化查询性能。

 

猜你喜欢

转载自501565246-qq-com.iteye.com/blog/2096209
今日推荐