2011-04-13 85 views
2

我要求返回搜索Sitecore站点时使用的最受欢迎的搜索术语列表。Sitecore在使用Lucene Search时返回“热门搜索”?

我不知道如何使用Sitecore实现这种功能,或者Sitecore是否具备这种功能。我找不到任何详细说明这个问题的文件。

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

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

回答

3

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

Take a look here for more details

+0

也许最简单的,但OMS模块需要Sitecore 6.x,而且价格昂贵。 但是对于Sitecore 6.x ++中的更大的解决方案,这是解决它的简单方法。 – Holger 2011-04-18 11:30:34

+0

我会研究这一点,看看OMS是否可以证明这个项目是合理的。这似乎是最好的选择。谢谢 – Bevan 2011-04-19 00:18:45

1

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

解决这个,真分解成两个任务

1)收集搜索词的信息。每当用户在搜索框中输入一个我认为您拥有的搜索词时,规范化它并将其存储在一个SQL表中(本质上是一个[term] [count]类型的表,根据你已存储的条款更新计数器

通过规范化,我的意思是将它降低等等 - 可能会破坏每个搜索项(word)下来并将它们一对一地存储,如果这是您的解决方案所要求的(可能不是我要去的路线)

2)根据用户在搜索框中输入的内容实时检索表中的信息。假设你想要某种类似“类似亚马逊的” - 现在几乎所有主流搜索引擎都可以找到 - 自动完成。我通常在Web服务中实现这些服务,然后通过Ajax,JQuery或您喜欢的任何丰富的客户端实现进行调用。至于更新XML文件,我认为锁定问题和性能会杀死该解决方案;尽管它也许可以作为一个非常小规模的工作。

对不起,我不能在我的回复中更具体,但你的问题是非常开放的。

1

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

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

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