private static BrowseRequest CreateRequest(LuceneQuery query, LuceneFilter filter, IEnumerable <BrowseSelection> selections, SortField[] sorts, int skip, int take, bool includeFacets) { var request = new BrowseRequest(); request.setQuery(query); request.setFilter(filter); if (selections != null) { foreach (var selection in selections) { request.addSelection(selection); } } if (sorts != null) { request.setSort(sorts); } request.setOffset(0); request.setCount(skip + take); if (includeFacets) { request.setFacetSpec(FieldName.Industries, CreateFacetSpec()); request.setFacetSpec(FieldName.JobTypes, CreateFacetSpec()); } return(request); }
public JobAdSearchResults Search(LuceneQuery query, LuceneFilter filter, IEnumerable <BrowseSelection> selections, SortField[] sorts, int skip, int take, bool includeFacets) { var request = CreateRequest(query, filter, selections, sorts, skip, take, includeFacets); var result = _browser.browse(request); return(GetSearchResults(result, skip, take)); }
protected LuceneQuery GetBoostingQuery(LuceneQuery query, LuceneQuery contextQuery, float?boost) { if (contextQuery == null || boost == null) { return(query); } return(new BoostingQuery(query, contextQuery, boost.Value)); }
public RecencyBoostingQuery(LuceneQuery subQuery, string fieldName, TimeGranularity granularity, double alpha, double halfDecay) : base(subQuery) { _fieldName = fieldName; _granularity = granularity; _alpha = alpha; _halfDecay = halfDecay; }
private LuceneQuery BoostContentQuery(LuceneQuery contentQuery, MemberSearchQuery query) { if (contentQuery == null || query.SortOrder != MemberSortOrder.Relevance) { return(contentQuery); } // Boost recent job titles. var jobTitleQuery = query.Keywords.GetLuceneBoostQuery(query.IncludeSynonyms ? FieldName.JobTitleRecent : FieldName.JobTitleRecent_Exact, _queryAnalyzer); return(_booster.GetJobTitleBoostingQuery(contentQuery, jobTitleQuery)); }
protected LuceneQuery GetRecencyBoostingQuery(LuceneQuery query, string fieldName, TimeGranularity granularity, double?alpha, double?halfDecay) { return((alpha == null || halfDecay == null) ? query : new RecencyBoostingQuery(query, fieldName, granularity, alpha.Value, halfDecay.Value)); }