Sitecore在使用Lucene Search时返回“热门搜索”?

时间:2011-04-13 05:13:00

标签: sitecore

我要求退回搜索Sitecore网站时使用的最热门搜索字词列表。

我不知道如何使用Sitecore实现这种功能,或者Sitecore是否已经准备好了这种功能。我找不到任何详细说明的文件。

我目前正在使用基于LuceneSearch模块的搜索(http://trac.sitecore.net/LuceneSearch),但已更改为绑定到ListView以便于分页。

目前我可能只想构建一个独立的函数/类来更新XML文件或其他东西,除非有人能够指出我正确的方向......?

4 个答案:

答案 0 :(得分:3)

我坦率地使用OMS - 这就是它的目的。不需要单独的数据库。只需通过API与OMS注册搜索事件即可。有一个开箱即用的搜索报告。可能需要一些调整,但这似乎是最开箱即用的解决方案。

Take a look here for more details

答案 1 :(得分:1)

我不知道Sitecore中的任何标准功能可以帮助您实现这一目标,因此您可能必须从头开始 - 除非此处的其他人能够在某处指向一揽子交易:-)

解决这个问题,确实分为两个任务

1)收集搜索词信息。每当用户在搜索框中输入我认为您拥有的搜索词时;将其标准化并将其存储在SQL表中(基本上是[term] [count]类型表。根据已存储的术语更新计数器。

通过规范化,我的意思是小写它等等 - 可能会打破每个搜索词(单词)并一对一地存储它们,如果这是你的解决方案所要求的(可能不是我要去的路线)

2)根据用户在搜索框中输入的内容,从表格中实时检索信息。假设你想要某种类似“亚马逊”的东西 - 现在几乎在所有主流搜索引擎上都可以找到 - 自动完成。我通常在Web服务中实现这些,然后由Ajax,JQuery或您喜欢的任何富客户端实现调用。

至于更新XML文件,我认为锁定问题和性能会破坏该解决方案;虽然它也许可以在非常小的范围内工作。

很抱歉,我的回复中没有更具体的说明,但您的问题非常开放。

答案 2 :(得分:1)

非常有趣的问题。你可以做的一件事是有另一个数据库来存储这些搜索查询。插入此DB并不是非常困难,并且可以解决锁定XML文件的问题。也许将搜索查询插入到数据库表中然后获取最高结果只需拉出该查询字段排序的前x行。正如Mark Cassidy之前所说,可能在插入数据之前对数据进行规范化。

您可以在搜索布局(或子布局)上隔离此工作,使其在网站的特定部分上运行,而不是在每个页面上运行。

答案 3 :(得分:0)

Sitecore在行政洞察仪表板中提供了现成的“网站搜索”报告,这将告诉您哪些搜索字词带来了最多的访问次数,当然还有参与价值。 您只需要通过在搜索页面上注册页面事件并传递查询来配置它,否则sitecore将不知道哪个表单字段构成搜索。看到这篇文章,它会更详细地解释它。有关更多信息,您可以从sdn。http://sdn.sitecore.net/upload/sitecore6/65/engagement_analytics_configuration_reference_sc65-usletter.pdf下载分析配置参考文档。 并且不要忘记性能sitecore缓存各个级别的报告,因此在开发期间,知道如何强制缓存更新可能很方便,我在下面的博客文章中讨论这个: http://andytsitecore.blogspot.co.uk/2013/10/sitecore-dms-and-analytics.html