/// <summary> /// Search for documents between a range /// </summary> /// <param name="field">The field where we search for matching terms</param> /// <param name="from">From this number/date</param> /// <param name="to">To this number/date</param> /// <param name="boost">Boost used on results</param> /// <returns></returns> public static SearchClause <T> Range(Expression <Func <T, object> > field, object from, object to, double?boost = null) { var searchTerm = SearchTerm.QueryFieldBetween <T>(FieldName(field), from, to); searchTerm.Boost = boost; return(new SearchClause <T>() { Field = searchTerm }); }
public SearchRequest <T> InArea(GeoCoordinate center, double radius = 500) { var areaTerm = new SearchTerm(new SearchArea(center.Latitude, center.Longitude, radius)); if (Fields.Where(x => x.InArea != null).Any()) { throw new ArgumentException("An InArea clause is already defined."); } Fields.Add(areaTerm); return(this); }
public SearchRequest <T> Not(SearchClause <T> clause) { clause.Field.TermOccur = SearchTerm.TermOccurance(Occurance.NOT); Fields.Add(clause.Field); return(this); }
public SearchRequest <T> Should(SearchClause <T> clause) { clause.Field.TermOccur = SearchTerm.TermOccurance(Occurance.SHOULD); Fields.Add(clause.Field); return(this); }