我正在尝试使用通配符表达式构建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('\"')}.*/'";
}
当我传递搜索参数和搜索词时,它没有返回结果并抛出异常。
答案 0 :(得分:1)
您可以将您的Lucene查询作为SearchParameters
参数传递给searchText
方法,而不是扩展Search
类:
Documents.Search<T>(properties.SearchQuery, searchParam);