【问题标题】:How to do faceted search in Sitecore 7.x?如何在 Sitecore 7.x 中进行分面搜索?
【发布时间】:2014-12-15 13:46:38
【问题描述】:

谁能给我指出一些文档,逐步解释如何在Sitecore 7.x 中进行分面搜索?我已阅读 Sitecore 官方文档(开发人员的项目存储桶和搜索指南)。

我发现该文档非常混乱。第 2 章是关于项目桶的全部内容。好吧,我不需要这个项目的项目桶。我没有那么多内容项。第 3 章称为“搜索”,但我认为它是在讨论从 Sitecore 界面内部搜索项目存储桶中的内容项目。

这很有趣——但不是我需要的。第 5 章是关于使用项目桶进行开发的。但我不清楚他们何时谈论在 Sitecore 界面中进行搜索,何时谈论在您的网站中构建搜索。

我正在寻找的是关于如何设置索引和分面的清晰分步说明,然后是有关如何执行分面搜索的具体代码示例。有谁知道这是否存在在线任何地方?

【问题讨论】:

    标签: sitecore sitecore7 faceted-search


    【解决方案1】:

    Sitecore 开发团队为发布 Sitecore 7(其中引入了新的搜索功能)制作了一组很好的博客和 Google Hangouts。你可以在这里访问:http://www.sitecore.net/Learn/Blogs/Technical-Blogs/Sitecore-7-Development-Team/Posts/2013/10/Facets-Explained.aspx

    在设置索引方面,使用提供的配置文件,即Sitecore.ContentSearch.Lucene.Index.Web.config,并根据需要使用配置。默认情况下,您已经设置了三个索引(sitecore_content_web、sitecore_content_core 和 sitecore_content_master)。如果要自定义,则只需编辑当前配置。索引配置的 Locations 部分是最相关的,节点应该是不言自明的,但主要的是;

    • 根目录:定义 Sitecore 内容树的索引位置(例如 Sitecore/Content/MyStuff)
    • 数据库:指定使用哪个数据库(Master、Web 或 Core)

    每个索引可以有许多爬虫,但你可能不需要,我不会从那个开始。

    关于 faceting,这主要是由 Linq 扩展“FacetOn”驱动的。这可以应用于索引上的 Linq 查询,如下所示:

            using (IProviderSearchContext context =  ContentSearchManager.GetIndex(Constants._webContentIndexName).CreateSearchContext())
            {
                var model = new SearchResultViewModel();
    
                //Get all items in home ordered by content data
                //Faceted on semantics so will work with tagging
                IQueryable<CustomSearchResultItem> query =     context.GetQueryable<CustomSearchResultItem>()
                    .Where(i => i.Path.StartsWith(Constants._startPath))
                    .Where(i => i.Content.Contains(searchTerm))
                    .Where(i => i.TemplateId != exclusionTemplate)
                    .FacetOn(i => i.Semantics);
    
                //DO SOMETHING WITH RESULTS
    
            }
    

    为了澄清任何混淆,当文档提到项目桶等时,这与您执行搜索的方式没有什么不同。 Sitecore 的伟大之处在于,即使是 GUI 也建立在您用于开发解决方案的相同 API 之上。因此,如果内部搜索是围绕 Item Buckets 开发的,您可以在自己的搜索解决方案中使用这些示例。

    【讨论】:

    • 感谢您的回复。任何人给我的任何信息都是有帮助的!我阅读了您提供的链接,但我并没有真正从中得到任何东西。我一定遗漏了一些其他人都已经理解的基本知识。 :) 在上面的代码示例中,什么是 SearchResultViewModel?我想也许我需要一些关于如何使用 SitecoreContentSearch API 的简单文档。刻面部分似乎很简单。但我什至无法理解如何设置和运行基础知识。
    • 是的,我可能假设了一些先验知识。 Sitecore 是一个相当大的平台,所以我知道有时事情可能需要一段时间才能让您了解。我没有编辑我的答案,而是找到了另一个我认为涵盖所有内容的好参考:fusionworkshop.co.uk/news-and-insight/tech-lab/…
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-03-22
    • 1970-01-01
    • 2014-09-21
    • 1970-01-01
    • 2016-12-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多