/* SPDX-License-Identifier: Apache-2.0 * * The OpenSearch Contributors require contributions made to * this file be licensed under the Apache-2.0 license or a * compatible open source license. */ /* * Modifications Copyright OpenSearch Contributors. See * GitHub history for details. * * Licensed to Elasticsearch B.V. under one or more contributor * license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright * ownership. Elasticsearch B.V. licenses this file to you under * the Apache License, Version 2.0 (the "License"); you may * not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ using System; using System.Linq.Expressions; namespace OpenSearch.Client { public static class Query where T : class { public static QueryContainer Bool(Func, IBoolQuery> selector) => new QueryContainerDescriptor().Bool(selector); public static QueryContainer Boosting(Func, IBoostingQuery> selector) => new QueryContainerDescriptor().Boosting(selector); public static QueryContainer Conditionless(Func, IConditionlessQuery> selector) => new QueryContainerDescriptor().Conditionless(selector); public static QueryContainer ConstantScore(Func, IConstantScoreQuery> selector) => new QueryContainerDescriptor().ConstantScore(selector); public static QueryContainer DateRange(Func, IDateRangeQuery> selector) => new QueryContainerDescriptor().DateRange(selector); public static QueryContainer DisMax(Func, IDisMaxQuery> selector) => new QueryContainerDescriptor().DisMax(selector); /// public static QueryContainer DistanceFeature(Func, IDistanceFeatureQuery> selector) => new QueryContainerDescriptor().DistanceFeature(selector); public static QueryContainer Exists(Func, IExistsQuery> selector) => new QueryContainerDescriptor().Exists(selector); public static QueryContainer FunctionScore(Func, IFunctionScoreQuery> selector) => new QueryContainerDescriptor().FunctionScore(selector); public static QueryContainer Fuzzy(Func, IFuzzyQuery> selector) => new QueryContainerDescriptor().Fuzzy(selector); public static QueryContainer GeoBoundingBox(Func, IGeoBoundingBoxQuery> selector) => new QueryContainerDescriptor().GeoBoundingBox(selector); public static QueryContainer GeoDistance(Func, IGeoDistanceQuery> selector) => new QueryContainerDescriptor().GeoDistance(selector); public static QueryContainer GeoPolygon(Func, IGeoPolygonQuery> selector) => new QueryContainerDescriptor().GeoPolygon(selector); public static QueryContainer GeoShape(Func, IGeoShapeQuery> selector) => new QueryContainerDescriptor().GeoShape(selector); public static QueryContainer Shape(Func, IShapeQuery> selector) => new QueryContainerDescriptor().Shape(selector); public static QueryContainer HasChild(Func, IHasChildQuery> selector) where TChild : class => new QueryContainerDescriptor().HasChild(selector); public static QueryContainer HasParent(Func, IHasParentQuery> selector) where TParent : class => new QueryContainerDescriptor().HasParent(selector); public static QueryContainer Ids(Func selector) => new QueryContainerDescriptor().Ids(selector); /// public static QueryContainer Intervals(Func, IIntervalsQuery> selector) => new QueryContainerDescriptor().Intervals(selector); public static QueryContainer Knn(Func, IKnnQuery> selector) => new QueryContainerDescriptor().Knn(selector); public static QueryContainer Match(Func, IMatchQuery> selector) => new QueryContainerDescriptor().Match(selector); public static QueryContainer MatchAll(Func selector = null) => new QueryContainerDescriptor().MatchAll(selector); /// public static QueryContainer MatchBoolPrefix(Func, IMatchBoolPrefixQuery> selector = null) => new QueryContainerDescriptor().MatchBoolPrefix(selector); public static QueryContainer MatchNone(Func selector = null) => new QueryContainerDescriptor().MatchNone(selector); public static QueryContainer MatchPhrase(Func, IMatchPhraseQuery> selector) => new QueryContainerDescriptor().MatchPhrase(selector); public static QueryContainer MatchPhrasePrefix(Func, IMatchPhrasePrefixQuery> selector) => new QueryContainerDescriptor().MatchPhrasePrefix(selector); public static QueryContainer MoreLikeThis(Func, IMoreLikeThisQuery> selector) => new QueryContainerDescriptor().MoreLikeThis(selector); public static QueryContainer MultiMatch(Func, IMultiMatchQuery> selector) => new QueryContainerDescriptor().MultiMatch(selector); public static QueryContainer Nested(Func, INestedQuery> selector) => new QueryContainerDescriptor().Nested(selector); public static QueryContainer ParentId(Func, IParentIdQuery> selector) => new QueryContainerDescriptor().ParentId(selector); public static QueryContainer Percolate(Func, IPercolateQuery> selector) => new QueryContainerDescriptor().Percolate(selector); public static QueryContainer Prefix(Expression> fieldDescriptor, string value, double? boost = null, MultiTermQueryRewrite rewrite = null, string name = null ) => new QueryContainerDescriptor().Prefix(fieldDescriptor, value, boost, rewrite, name); public static QueryContainer Prefix(Field field, string value, double? boost = null, MultiTermQueryRewrite rewrite = null, string name = null ) => new QueryContainerDescriptor().Prefix(field, value, boost, rewrite, name); public static QueryContainer Prefix(Func, IPrefixQuery> selector) => new QueryContainerDescriptor().Prefix(selector); public static QueryContainer QueryString(Func, IQueryStringQuery> selector) => new QueryContainerDescriptor().QueryString(selector); public static QueryContainer Range(Func, INumericRangeQuery> selector) => new QueryContainerDescriptor().Range(selector); public static QueryContainer LongRange(Func, ILongRangeQuery> selector) => new QueryContainerDescriptor().LongRange(selector); public static QueryContainer Regexp(Func, IRegexpQuery> selector) => new QueryContainerDescriptor().Regexp(selector); /// public static QueryContainer RankFeature(Func, IRankFeatureQuery> selector) => new QueryContainerDescriptor().RankFeature(selector); public static QueryContainer Script(Func, IScriptQuery> selector) => new QueryContainerDescriptor().Script(selector); /// public static QueryContainer ScriptScore(Func, IScriptScoreQuery> selector) => new QueryContainerDescriptor().ScriptScore(selector); public static QueryContainer SimpleQueryString(Func, ISimpleQueryStringQuery> selector) => new QueryContainerDescriptor().SimpleQueryString(selector); public static QueryContainer SpanContaining(Func, ISpanContainingQuery> selector) => new QueryContainerDescriptor().SpanContaining(selector); public static QueryContainer SpanFirst(Func, ISpanFirstQuery> selector) => new QueryContainerDescriptor().SpanFirst(selector); public static QueryContainer SpanMultiTerm(Func, ISpanMultiTermQuery> selector) => new QueryContainerDescriptor().SpanMultiTerm(selector); public static QueryContainer SpanNear(Func, ISpanNearQuery> selector) => new QueryContainerDescriptor().SpanNear(selector); public static QueryContainer SpanNot(Func, ISpanNotQuery> selector) => new QueryContainerDescriptor().SpanNot(selector); public static QueryContainer SpanOr(Func, ISpanOrQuery> selector) => new QueryContainerDescriptor().SpanOr(selector); public static QueryContainer SpanTerm(Func, ISpanTermQuery> selector) => new QueryContainerDescriptor().SpanTerm(selector); public static QueryContainer SpanWithin(Func, ISpanWithinQuery> selector) => new QueryContainerDescriptor().SpanWithin(selector); public static QueryContainer SpanFieldMasking(Func, ISpanFieldMaskingQuery> selector) => new QueryContainerDescriptor().SpanFieldMasking(selector); public static QueryContainer Term(Expression> fieldDescriptor, object value, double? boost = null, string name = null) => new QueryContainerDescriptor().Term(fieldDescriptor, value, boost, name); public static QueryContainer Term(Field field, object value, double? boost = null, string name = null) => new QueryContainerDescriptor().Term(field, value, boost, name); public static QueryContainer Term(Func, ITermQuery> selector) => new QueryContainerDescriptor().Term(selector); public static QueryContainer TermRange(Func, ITermRangeQuery> selector) => new QueryContainerDescriptor().TermRange(selector); public static QueryContainer Terms(Func, ITermsQuery> selector) => new QueryContainerDescriptor().Terms(selector); public static QueryContainer TermsSet(Func, ITermsSetQuery> selector) => new QueryContainerDescriptor().TermsSet(selector); public static QueryContainer Wildcard(Expression> fieldDescriptor, string value, double? boost = null, MultiTermQueryRewrite rewrite = null, string name = null ) => new QueryContainerDescriptor().Wildcard(fieldDescriptor, value, boost, rewrite, name); public static QueryContainer Wildcard(Field field, string value, double? boost = null, MultiTermQueryRewrite rewrite = null, string name = null ) => new QueryContainerDescriptor().Wildcard(field, value, boost, rewrite, name); public static QueryContainer Wildcard(Func, IWildcardQuery> selector) => new QueryContainerDescriptor().Wildcard(selector); } }