コード例 #1
0
        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);
            }
        }
コード例 #2
0
        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);
        }