【问题标题】:Sitecore: Full text search using luceneSitecore:使用 lucene 进行全文搜索
【发布时间】:2016-08-17 12:51:41
【问题描述】:

我正在使用 sitecore 8,我正在寻找一种方法来对我的所有 sitecore 内容进行全文搜索。我有一个解决方案,但我觉得必须有更好的方法来做到这一点。

我的方法: 我有一个计算字段,它将所有文本字段合并到一个计算字段中。在我执行搜索之前,我将我的搜索文本标记化并构建一个 ORed 谓词以匹配该字段。

我不喜欢这种方法,因为如果我需要提升与标题和正文相匹配的项目,即我失去了字段级别提升,它会变得非常复杂。

仅供参考:我的代码与so post 非常相似。

谢谢

【问题讨论】:

    标签: lucene sitecore


    【解决方案1】:

    Sitecore 已经维护了一个全文字段_content,其中包含所有文本字段。您可以对此进行搜索。您甚至可以创建添加到_content 的计算字段(例如数据源内容示例here)。

    因此,假设您正在为全文搜索构建 LINQ 查询,并且已经过滤了模板、最新版本、位置等,将搜索词添加到查询中将如下所示:

    var terms = SearchTerm.Split();
    var currentExpression = PredicateBuilder.True<SiteSearchResultItem>();
    foreach (var term in terms)
    {
        //Content is mapped to _content
        currentExpression = PredicateBuilder.And(currentExpression, x => x.Content.Contains(term));
    }
    query = query.Where(currentExpression);
    

    通常,您希望对搜索词进行“与”而不是“或”。

    你是对的,现场水平提升在这方面丢失了。最后,Lucene 对于创建高质量的全文站点搜索来说并不是一个很好的解决方案。如果这是一项重要要求,您可能需要查看 Coveo 甚至是 Google Site Search 之类的东西。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-05-17
      • 1970-01-01
      • 2016-12-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-08-31
      相关资源
      最近更新 更多