使用Solr,Sphinx或Lucene进行搜索 - 按点击对搜索结果进行排名

时间:2011-05-25 09:35:03

标签: search lucene solr sphinx

我想实施一项搜索,将结果排名更高,如果以前的类似搜索引导用户点击结果。

Solr(Lucene)或Sphinx都可以吗?

3 个答案:

答案 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)当然可以,但不太可行。你需要做的是:

  1. 跟踪用户点击次数
  2. 规范化搜索查询以对类似查询进行分组并存储
  3. 将其重新索引到Solr
  4. 如果你问我,这听起来像很多工作都有很多陷阱。

答案 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'。