【发布时间】:2021-08-12 10:19:43
【问题描述】:
如果同时搜索多个索引,有没有办法说如果搜索索引A,则添加此过滤器,如果搜索索引B,则添加不同的过滤器。
例如:
var filters = new List<Func<QueryContainerDescriptor<PropertySearchResult>, QueryContainer>>();
filters.Add(fq => fq.Term(t => t.Field(f => f.PromoterId).Value(user.Id)));
filters.Add(fq => fq.Term(t => t.Field(f => f.SubscriptionId).Value(subscriptionId)));
string indicies = String.Join(",", Utils.SupportedCountries.Select(c => c.Key.ToLower()).ToArray());
var result = await ElasticSearchConfig.GetClient().DeleteByQueryAsync<PropertySearchResult>(u => u
.Index(indicies)
.Query(q => q
.Bool(bq => bq.Filter(filters))));
目前,所有索引都将使用相同的过滤器,但我想根据正在搜索的索引来改变过滤器。
【问题讨论】:
标签: elasticsearch nest