【发布时间】:2011-09-01 14:43:09
【问题描述】:
如果以前的类似搜索导致用户点击结果,我想实现一个搜索,该搜索将结果排名更高。
Solr (Lucene) 或 Sphinx 都可以吗?
【问题讨论】:
如果以前的类似搜索导致用户点击结果,我想实现一个搜索,该搜索将结果排名更高。
Solr (Lucene) 或 Sphinx 都可以吗?
【问题讨论】:
我认为,跟踪用户点击是必要的。 (如果更高的排名取决于用户点击)
对于“排名更高”的结果,solr-elevator 功能可能对您的需求有所帮助:http://wiki.apache.org/solr/QueryElevationComponent
可能海拔函数比 lucene boost 函数更有帮助(在你的情况下)。 http://lucene.apache.org/java/2_4_0/queryparsersyntax.html#Boosting%20a%20Term Finlay 这取决于实现的类型,我认为。
【讨论】:
使用 Solr (Lucene) 当然可以,但实际上并不可行。你需要做的是:
如果你问我,这听起来像是很多工作,有很多陷阱。
【讨论】:
使用 Sphinx,您可以使用附加属性 clicks_count 并使用此类查询将点击的文档排名更高
SELECT *, clicks_count*1000 AS cc
FROM your_index
WHERE MATCH ("words to match") ORDER BY cc DESC;
只考虑点击次数
或
SELECT *, weght() + clicks_count*10000 AS cc
FROM your_index
WHERE MATCH ("words to match") ORDER BY cc DESC;
获取匹配权重和点击权重
当然,您已经更新了计数器“clicks_count”。
【讨论】: