在Azure Search .NET SDK中,如何传递搜索文本?

时间:2017-11-07 12:03:39

标签: azure azure-search

我正在尝试使用通配符表达式构建lucene全文搜索以表示&#34;包含&#34; /*.<Keyword>/*,但在Azure搜索库提供的Buildparameter模型中没有搜索属性。

我正在使用

Documents.Search<T>(searchTerm, searchParam);

//where SearchTerm is the <typed key search> for ex "Nurs" and the result 
//should be where all or any text contains "Nurs"

我用来构建的Azure.Search.Models SearchParameter是我扩展的地方,用于创建包含搜索字段的新类。

        return new ExtentedSearchParameter
         {
            IncludeTotalResultCount = true,
            SearchFields = new List<string>() {"FilterableTitle", "FilterableAlternativeTitle"},
            Skip = (properties.Page - 1) * properties.Count,
            Top = properties.Count,
            Search=properties.SearchQuery,
            QueryType = QueryType.Full ,
            Select=new List<string>(){"FilterableTitle", "FilterableAlternativeTitle"},
            OrderBy = properties.OrderByFields,
        };

在我的应用程序中,我正在构建像

这样的查询
  if (string.IsNullOrWhiteSpace(returnProperties.FilterBy))
        {
            returnProperties.SearchQuery =$"FilterableTitle: /.*'{cleanSearchTerm.TrimStart('\"').TrimEnd('\"')}.*/' and FilterableAlternativeTitle:/.*'{cleanSearchTerm.TrimStart('\"').TrimEnd('\"')}.*/'";
        }

当我传递搜索参数和搜索词时,它没有返回结果并抛出异常。

1 个答案:

答案 0 :(得分:1)

您可以将您的Lucene查询作为SearchParameters参数传递给searchText方法,而不是扩展Search类:

Documents.Search<T>(properties.SearchQuery, searchParam);