Example #1
0
        /// <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
            });
        }
Example #2
0
        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);
        }
Example #3
0
 public SearchRequest <T> Not(SearchClause <T> clause)
 {
     clause.Field.TermOccur = SearchTerm.TermOccurance(Occurance.NOT);
     Fields.Add(clause.Field);
     return(this);
 }
Example #4
0
 public SearchRequest <T> Should(SearchClause <T> clause)
 {
     clause.Field.TermOccur = SearchTerm.TermOccurance(Occurance.SHOULD);
     Fields.Add(clause.Field);
     return(this);
 }