gpt4 book ai didi

c# - Elasticsearch NEST 5.0 中的 FilterContainer

转载 作者:行者123 更新时间:2023-11-30 21:43:52 24 4
gpt4 key购买 nike

我正在将 Elasticsearch 从 1.7.1 迁移到 5.0。升级到 5.0 后,我修复了代码中的大部分问题,但我不知道如何更改 FilterContainer 以在新版本中工作。

下面是我的代码


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 子句。

关于c# - Elasticsearch NEST 5.0 中的 FilterContainer,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41269955/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com