Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/32.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net 如何在umbraco的所有节点和所有属性中搜索关键字_Asp.net_Umbraco - Fatal编程技术网

Asp.net 如何在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

您好,我已经在umbraco中创建了索引,用于搜索umbraco中的任何关键字,我已经为这些关键字创建了用户控件并创建了搜索条件和过滤器,但它显示的是包含别名bodyText的节点列表,但我要的是不包含别名bodyText的所有节点列表,因为无法提供所有属性别名bodytext那么我应该如何搜索umbraco中的所有节点和所有属性

 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 ...
    }
  }
}