我可以在Sitecore Shell内的Developer Center下使用XPath Builder来选择节点下面的所有项目,并按if字段存在,单行文本字段进行过滤吗? 使用快速查询(不受Query.MaxItems设置限制)
例如:fast://sitecore/content//*[@#my field# != '' ]
但是这个查询在空和字段之间没有区别不存在,我希望结果中的空字符,而不是字段不存在的项目。
答案 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;
}
}