• 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏吧

FilterContainer在Elasticsearch NEST 5.0

c/c++ 来源:iluvcode 3次浏览

我对Elasticsearch迁移工作从1.7.1到5.0。 我修复了大部分的代码问题升级到5.0之后,但我无法弄清楚如何改变FilterContainer在新版本中工作。FilterContainer在Elasticsearch NEST 5.0

下面是我的代码


public static List<FilterContainer> GetPriceRangeFilters(SearchListCriteria criteria, out List<FilterContainer> additionalpricefilters) 
    { 
     var pricefilters = new List<FilterContainer>(); 
     additionalpricefilters = new List<FilterContainer>(); 
     if (criteria.SearchGlobalSettings.MinimumPriceRange != null && criteria.SearchGlobalSettings.MinimumPriceRange.Length > 0) 
     { 
      const string fieldName = "itemPrices.webPrice"; 
      pricefilters.Add((new FilterDescriptor<ItemSearchEntry>()).Query(a => a.Range(n => n.OnField(fieldName).GreaterOrEquals(criteria.SearchGlobalSettings.MinimumPriceRange[0].ToString()). 
       LowerOrEquals(criteria.SearchGlobalSettings.MaximumPriceRange[0].ToString())))); 
      for (var i = 1; i < criteria.SearchGlobalSettings.MinimumPriceRange.Length; i++) 
      { 
       additionalpricefilters.Add((new FilterDescriptor<ItemSearchEntry>()).Query(a => a.Range(n => n.OnField(fieldName). 
        GreaterOrEquals(criteria.SearchGlobalSettings.MinimumPriceRange[i].ToString()).LowerOrEquals(criteria.SearchGlobalSettings.MaximumPriceRange[i].ToString())))); 
      } 
     } 
     return pricefilters; 
    } 

===========解决方案如下:

FilterContainer在NEST 2.0起,because filters and queries merged in Elasticsearch into queries不再存在,具有查询过滤上下文。

如果你要使用FilterContainer,使用QueryContainer然后加入到搜索时,传递的FilterContainer收集到bool查询filter条款。


版权声明:本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系管理员进行删除。
喜欢 (0)