如何使用 QueryElevationComponent 改进搜索结果? [英] How to improve search results with QueryElevationComponent?
问题描述
我正在使用 solr 1.4 并使用 QueryElevation 组件来保证搜索位置.我有大约 700,000 个带有 1 Mb 高程文件的文档.结果在newrelic监控网站上很慢:
I'm using solr 1.4 and using QueryElevation Component for guaranteed search position. I have around 700,000 documents with 1 Mb elevation file. It turns out it is quite slow on the newrelic monitoring website:
Slowest Components Count Exclusive Total
QueryElevationComponent 1 506,858 ms 100% 506,858 ms 100%
SolrIndexSearcher 1 2.0 ms 0% 2.0 ms 0%
org.apache.solr.servlet.SolrDispatchFilter.doFilter() 1 1.0 ms 0% 506,862 ms 100%
QueryComponent 1 1.0 ms 0% 1.0 ms 0%
DebugComponent 1 0.0 ms 0% 0.0 ms 0%
FacetComponent 1 0.0 ms 0% 0.0 ms 0%
我正在寻找如何提高搜索查询的速度.这QueryElevation 组件花费太多时间不可接受.海拔文件的大小仅为 1 Mb.我想知道其他使用这个组件的人没有问题(与速度有关)?我是吗用错了方法或者这个组件的使用有限制?
I'm looking for how to improve the speed of the search query. The QueryElevation Component is taking too much time which is unacceptable. The size of elevation file is only 1 Mb. I wonder other people using this component without problems (related to speed)? Am I using it the wrong way or there is a limit when using this component?
推荐答案
您想要提升的文档数量非常庞大 - 我确定这不是为此而设计的 :-)!
This is a huge number of docs you want to elevate - I'm sure this wasn't designed for that :-)!
您的文档是否有共同的属性,例如salesrank,然后您可以简单地使用 dismax 处理程序来提升文档?例如通过 bf=recip(sqrt(sales_rank_i),1,1,1))
Isn't there a common attribute of your docs e.g. salesrank, where you can then simply use the dismax handler to boost the docs? e.g. via bf=recip(sqrt(sales_rank_i),1,1,1))
(或者您可以简单地根据这个 salesrank 字段对文档进行排序)
(Or you could simply sort the docs against this salesrank field)
或者你不能介绍一个这样的领域吗?
Or couldn't you introduce such a field?
这篇关于如何使用 QueryElevationComponent 改进搜索结果?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!