2

我正在为基于 Sitecore 的网站编写搜索网站。我已经能够走到这一步。

 var query = SearchContext.GetQueryable<MySearchResultItem>().Where(i =>        
                       i.ItemContent.Contains(this._View.SearchTerm)).ToArray();

MySearchResultsItem 定义如下。

public class MySearchResultItem
{
    // Will match the _name field in the index
    [IndexField("_name")]
    public string Name
    {
        get;
        set;
    }

    [IndexField(Sitecore.ContentSearch.BuiltinFields.Content)]
    public string ItemContent
    {
        get;
        set;
    }

}

当我进行搜索时

[IndexField("_name")]

,我得到了正确的结果。但我想在项目的所有领域进行搜索,我认为可以使用
[IndexField(Sitecore.ContentSearch.BuiltinFields.Content)].

我究竟做错了什么?我应该使用哪个 IndexField 来查询所有内容?

谢谢

4

1 回答 1

0

索引中的Sitecore.ContentSearch.BuiltinFields.Content字段仅包含媒体库中二进制文件的内容。如果您查看它引用的配置Sitecore.ContentSearch.ComputedFields.MediaItemContentExtractor

要搜索所有字段,您需要添加一个自定义IComputedIndexField<fields hint="raw:AddComputedIndexField">聚合您要搜索的所有字段,或者只在 linq 查询中包含您要搜索的所有字段。

于 2013-06-20T20:28:25.423 回答