Asp.net 如何在umbraco的所有节点和所有属性中搜索关键字
您好,我已经在umbraco中创建了索引,用于搜索umbraco中的任何关键字,我已经为这些关键字创建了用户控件并创建了搜索条件和过滤器,但它显示的是包含别名bodyText的节点列表,但我要的是不包含别名bodyText的所有节点列表,因为无法提供所有属性别名bodytext那么我应该如何搜索umbraco中的所有节点和所有属性Asp.net 如何在umbraco的所有节点和所有属性中搜索关键字,asp.net,umbraco,Asp.net,Umbraco,您好,我已经在umbraco中创建了索引,用于搜索umbraco中的任何关键字,我已经为这些关键字创建了用户控件并创建了搜索条件和过滤器,但它显示的是包含别名bodyText的节点列表,但我要的是不包含别名bodyText的所有节点列表,因为无法提供所有属性别名bodytext那么我应该如何搜索umbraco中的所有节点和所有属性 protected void Page_Load(object sender, EventArgs e) { SearchTerm = Req
protected void Page_Load(object sender, EventArgs e)
{
SearchTerm = Request.QueryString["s"];
if (string.IsNullOrEmpty(SearchTerm)) return;
var criteria = ExamineManager.Instance
.SearchProviderCollection["DemoSearcher"]
.CreateSearchCriteria(UmbracoExamine.IndexTypes.Content);
var filter = criteria
.GroupedOr(new string[] { "nodeName", "bodyText" }, SearchTerm)
.Compile();
SearchResults = ExamineManager.Instance.SearchProviderCollection["DemoSearcher"].Search(filter);
SearchResultListing.DataSource = SearchResults;
SearchResultListing.DataBind();
}
您是否希望搜索每种类型的字段,因为搜索整型字段或guid,甚至多节点选择器的json或xml都不一定会得到您想要的结果 您可以枚举每个节点的属性,然后如果该属性属于要搜索的文本框类型,则可以使用以下内容作为搜索不一定称为bodyText的文本框的基础:
foreach(node in nodes)
{
var props = node.PropertiesAsList;
foreach (var prop in props)
{
if (@prop.Value.GetType() == " ... type you want to search ... ")
{
var fieldValue = node.getProperty(@prop.Alias).Value;
... search fieldvalue ...
}
}
}