umbraco检查搜索中的多个搜索项
我正在尝试在umbraco Inspect中设置搜索。我有两个搜索字段:物料和制造商。当我尝试搜索一种物料和一种制造商时,它将给出正确的结果。但是当尝试搜索多个物料或制造商时,它不会给出结果。这是我的代码umbraco检查搜索中的多个搜索项,umbraco,examine,Umbraco,Examine,我正在尝试在umbraco Inspect中设置搜索。我有两个搜索字段:物料和制造商。当我尝试搜索一种物料和一种制造商时,它将给出正确的结果。但是当尝试搜索多个物料或制造商时,它不会给出结果。这是我的代码 const string materialSearchFields = "material"; const string manufacturerSearchFields = "manufacturer"; 如果(!string.IsNullOrEmpty(Request.Quer
const string materialSearchFields = "material";
const string manufacturerSearchFields = "manufacturer";
如果(!string.IsNullOrEmpty(Request.QueryString[“material”]))
{
material=Helper.StripTags(Request.QueryString[“material”]);
}
如果(!string.IsNullOrEmpty(Request.QueryString[“manufacturer”]))
{
manufacturer=Helper.StripTags(Request.QueryString[“manufacturer”]);
}
如果(!string.IsNullOrEmpty(Request.QueryString[“material”])| |!string.IsNullOrEmpty(Request.QueryString[“manufacturer”]))
{
var query=userFieldSearchCriteria.Field(materialSearchFields,material).和().Field(manufacturerSearchFields,manufacturer).Compile();
contentResults=contentSearcher.Search(query.ToList();
}
我在querystring中的搜索关键字是材料=铁,钢
如何拆分此关键字并完成搜索?
提前感谢您的帮助……您正在使用AND运算符,在您的情况下,我想您是在寻找GROUPEDOR 我刚刚在一个老项目中工作,从那里抓到了这个小飞贼(我已经根据您的需要进行了调整)。我想这会帮助你:
public IEnumerable<DynamicNode> SearchUmbraco(string[] keywords, string currentCulture)
{
// In this case I had some diferent cultures, so this sets the BaseSearchProvider to the given culture parameter. You might not need this, use your default one.
BaseSearchProvider searcher = SetBaseSearchProvider(currentCulture);
var searchCriteria = searcher.CreateSearchCriteria(BooleanOperation.Or);
var groupedQuery = searchCriteria.GroupedOr(new[] {"manufacturer", "material"}, keywords).Compile();
var searchResults = searcher.Search(groupedQuery);
// ... return IEnumerable of dynamic nodes (in this snipet case)
}
public IEnumerable SearchUmbraco(字符串[]关键字,字符串currentCulture)
{
//在本例中,我有一些不同的区域性,因此这会将BaseSearchProvider设置为给定的区域性参数。您可能不需要它,请使用默认的区域性参数。
BaseSearchProvider searcher=SetBaseSearchProvider(当前区域性);
var searchCriteria=searcher.CreateSearchCriteria(BooleanOperation.Or);
var groupedQuery=searchCriteria.GroupedOr(新[]{“制造商”,“材料”},关键字).Compile();
var searchResults=searcher.Search(groupedQuery);
//…返回动态节点的IEnumerable(在这种情况下)
}
我只是在助手中拆分(etc)关键字,并在调用此方法时将它们传递给字符串数组
只需查看umbraco博客上的以下信息: