private static void BuildFieldQuery(MatchQueryDescriptor <ApprenticeshipSummary> queryDescriptor, SearchTermFactors searchFactors) { if (searchFactors.Boost.HasValue) { queryDescriptor.Boost(searchFactors.Boost.Value); } if (searchFactors.Fuzziness.HasValue) { queryDescriptor.Fuzziness(searchFactors.Fuzziness.Value); } if (searchFactors.FuzzyPrefix.HasValue) { queryDescriptor.PrefixLength(searchFactors.FuzzyPrefix.Value); } if (searchFactors.MatchAllKeywords) { queryDescriptor.Operator(Operator.And); } if (!string.IsNullOrWhiteSpace(searchFactors.MinimumMatch)) { queryDescriptor.MinimumShouldMatch(searchFactors.MinimumMatch); } if (searchFactors.PhraseProximity.HasValue) { queryDescriptor.Slop(searchFactors.PhraseProximity.Value); } }
private static SearchTermFactors GetFactorsFromRequest(string searchFactorKey, SearchRequest request) { var defaultSearchTermFactors = new SearchTermFactors(); if (request.SearchFactorsParameters == null) { return(defaultSearchTermFactors); } var searchFactors = request.SearchFactorsParameters.FirstOrDefault(each => each.Name == searchFactorKey); return(searchFactors == null ? defaultSearchTermFactors : searchFactors.Value); }