How to implement Filters with ElasticSearch 7 and NEST 7

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);

}

This topic was automatically closed 28 days after the last reply. New replies are no longer allowed.