I'm using ElarsticSearch 7.7 & NEST 7.7 and I'm trying to filter data by some fields.
As of 1st try, I need to filter by delivery dates.
it returns documents by the search query.But when I add deliveryFilter
I'm getting 0 documents and it should be 2.
var deliveryFilter = new TermQuery { Name = "Delivery Date Filter", Field = Field<ElasticIndexGroupProduct>(p => p.DeliveryDateName), Value = "3-5 days" }; queryContainer &= deliveryFilter; // it is working without this line
It's working fine without this filter. But I need filter by DeliveryDateNames
public SearchResult Search(string searchQuery, int storeId, int pageNumber = 1, int pageSize = 10, IList<SearchFilter> requestFilter = null, decimal? priceFrom = null, decimal? priceTo = null, string sortBy = null) { //------ test data---------------------------- searchQuery = "Nikon"; priceFrom = 0; priceTo = 6550000; pageNumber = 1; pageSize = 12; sortBy = "z-a"; var queryContainer = new QueryContainer(); #region MyRegion var multiMatch = new QueryStringQuery { Fields = Infer.Field<ElasticIndexGroupProduct>(p => p.Name) .And(Infer.Field<ElasticIndexGroupProduct>(p => p.CategoryName)) .And(Infer.Field<ElasticIndexGroupProduct>(p => p.AssociatedProducts.Select(x => x.Name))), Boost = 1.1, Name = "named_query", Query = searchQuery, DefaultOperator = Operator.Or, Analyzer = "standard", QuoteAnalyzer = "keyword", AllowLeadingWildcard = true, MaximumDeterminizedStates = 2, Escape = true, FuzzyPrefixLength = 2, FuzzyMaxExpansions = 3, FuzzyRewrite = MultiTermQueryRewrite.ConstantScore, Rewrite = MultiTermQueryRewrite.ConstantScore, Fuzziness = Fuzziness.Auto, TieBreaker = 1, AnalyzeWildcard = true, MinimumShouldMatch = 2, QuoteFieldSuffix = "'", Lenient = true, AutoGenerateSynonymsPhraseQuery = false }; //queryContainer &= multiMatch; #endregion var deliveryFilter = new TermQuery { Name = "Delivery Date Filter", Field = Field<ElasticIndexGroupProduct>(p => p.DeliveryDateName), Value = "3-5 days" }; queryContainer &= deliveryFilter; // it is working without this line var searchRequest = new SearchRequest<ElasticIndexGroupProduct>() { Profile = true, From = (pageNumber - 1) * pageSize, Size = pageSize, Version = true, Query = new BoolQuery { Must = new QueryContainer[] { multiMatch }, Filter = new QueryContainer[] { queryContainer } } }; var searchResponse = _client.Search<ElasticIndexGroupProduct>(searchRequest);
}