2

我正在为通过 umbraco 设计的网站开发搜索功能。我正在使用检查来获取搜索结果。这是我的代码:

 var Searcher = ExamineManager.Instance.SearchProviderCollection["ExternalSearcher"];
            var searchCriteria = Searcher.CreateSearchCriteria(BooleanOperation.Or);
            var query = searchCriteria.Field("tags", searchTerm.Fuzzy(0.5f)).Compile();
            var searchResults = Searcher.Search(query);

使用这种方法,我只能获取搜索词所属的节点。但我想直接从属性中获取整个值。

我想知道从所有节点的同一属性中获取所有值的最快方法是什么。

4

2 回答 2

2

我终于设法直接从属性中获取值。这是我使用的代码:

    List<string> nodesList = new List<string>();
    var Searcher = ExamineManager.Instance.SearchProviderCollection["ExternalSearcher"];
    var searchCriteria = Searcher.CreateSearchCriteria(BooleanOperation.Or);
    var query = searchCriteria.Field("tags", queryString.Fuzzy(0.5f)).Compile();
    var searchResults = Searcher.Search(query);
    foreach (var item in searchResults)
    {
        string paths = ((Examine.SearchResult)item).Fields["tags"];
        nodesList.Add(paths); 
    }

使用((Examine.SearchResult)item).Fields["tags"]直接获取属性值。

于 2014-02-11T06:01:29.523 回答
0

如果您想定制您的搜索,您需要在 /config/examineIndex.config 文件中定义一个包含您实际想要搜索的属性的新索引集。

在这篇文章中解释得很好。

于 2014-02-10T20:48:53.640 回答