我想实施一项搜索,将结果排名更高,如果以前的类似搜索引导用户点击结果。
Solr(Lucene)或Sphinx都可以吗?
答案 0 :(得分:2)
我认为,跟踪用户点击是必要的。 (如果排名越高,则取决于用户点击次数)
对于“排名更高”的结果,也许solr-elevator功能可能对您的需求有所帮助:http://wiki.apache.org/solr/QueryElevationComponent
提升功能可能比lucene提升功能(在您的情况下)更有帮助。 http://lucene.apache.org/java/2_4_0/queryparsersyntax.html#Boosting%20a%20Term Finlay它取决于实现的类型,我认为。
答案 1 :(得分:1)
Solr(Lucene)当然可以,但不太可行。你需要做的是:
如果你问我,这听起来像很多工作都有很多陷阱。
答案 2 :(得分:0)
使用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'。