Sitecore快速查询按字段筛选存在,为null

时间:2015-02-20 15:13:17

标签: sitecore

我可以在Sitecore Shell内的Developer Center下使用XPath Builder来选择节点下面的所有项目,并按if字段存在,单行文本字段进行过滤吗? 使用快速查询(不受Query.MaxItems设置限制)

例如:fast://sitecore/content//*[@#my field# != '' ]

之类的东西

但是这个查询在空和字段之间没有区别不存在,我希望结果中的空字符,而不是字段不存在的项目。

1 个答案:

答案 0 :(得分:2)

这篇文章讨论如何修复快速查询以按字段搜索:http://www.agehrke.com/2014/12/fixing-sitecore-fast-query-querying-by-field-id/

否则这样的事情会起作用:

   Item[] items = Sitecore.Context.Database.SelectItems("/sitecore/content//*[@MyField != '']")

或使用索引:

public IEnumerable<SearchExample> Example()
        {
            using (var context = ContentSearchManager.GetIndex(GlobalIndex).CreateSearchContext())
            {
                var query = context.GetQueryable<SearchExample>()
                    .Where(item => item.MyField != null)                    
                    .ToList();
                return query;
        }
    }