/// <summary> /// Create {@code RangeFacetCounts} </summary> protected internal RangeFacetCounts(string field, Range[] ranges, Filter fastMatchFilter) { this.Field = field; this.Ranges = ranges; this.FastMatchFilter = fastMatchFilter; Counts = new int[ranges.Length]; }
/// <summary> /// 搜索并返回分页数据 /// </summary> /// <param name="indexPath">索引路径</param> /// <param name="searchQuery"><see cref="Lucene.Net.Search.Query"/></param> /// <param name="filter"><see cref="Lucene.Net.Search.Filter"/></param> /// <param name="sort"><see cref="Lucene.Net.Search.Sort"/></param> /// <param name="pageIndex">当前页码</param> /// <param name="pageSize">每页记录数</param> /// <returns>内容为<see cref="Lucene.Net.Documents.Document"/>的分页数据集合</returns> public Tunynet.PagingDataSet <Lucene.Net.Documents.Document> Search(string indexPath, Lucene.Net.Search.Query searchQuery, Lucene.Net.Search.Filter filter, Lucene.Net.Search.Sort sort, int pageIndex, int pageSize) { return(GetSearchEngine(indexPath).Search(searchQuery, filter, sort, pageIndex, pageSize)); }
/// <summary> /// Returns a new <see cref="Filter"/> accepting only documents /// in this range. This filter is not general-purpose; /// you should either use it with <see cref="DrillSideways"/> by /// adding it to <see cref="DrillDownQuery.Add"/>, or pass it to /// <see cref="Search.FilteredQuery"/> using its /// <see cref="Search.FilteredQuery.QUERY_FIRST_FILTER_STRATEGY"/>. /// If the <see cref="ValueSource"/> is static, e.g. an indexed numeric /// field, then it may be more efficient to use /// <see cref="Search.NumericRangeFilter"/>. The provided <paramref name="fastMatchFilter"/>, /// if non-null, will first be consulted, and only if /// that is set for each document will the range then be /// checked. /// </summary> public abstract Filter GetFilter(Filter fastMatchFilter, ValueSource valueSource);
/// <summary> /// 搜索并返回前topNumber条数据 /// </summary> /// <param name="indexPath">索引路径</param> /// <param name="searchQuery"><see cref="Lucene.Net.Search.Query"/></param> /// <param name="filter"><see cref="Lucene.Net.Search.Filter"/></param> /// <param name="sort"><see cref="Lucene.Net.Search.Sort"/></param> /// <param name="topNumber">最多返回多少条数据</param> /// <returns></returns> public IEnumerable <Lucene.Net.Documents.Document> Search(string indexPath, Lucene.Net.Search.Query searchQuery, Lucene.Net.Search.Filter filter, Lucene.Net.Search.Sort sort, int topNumber) { return(GetSearchEngine(indexPath).Search(searchQuery, filter, sort, topNumber)); }
/// <summary> /// Create {@code RangeFacetCounts}, using the provided /// <seealso cref="ValueSource"/>, and using the provided Filter as /// a fastmatch: only documents passing the filter are /// checked for the matching ranges. The filter must be /// random access (implement <seealso cref="DocIdSet#bits"/>). /// </summary> public DoubleRangeFacetCounts(string field, ValueSource valueSource, FacetsCollector hits, Filter fastMatchFilter, DoubleRange[] ranges) : base(field, ranges, fastMatchFilter) { Count(valueSource, hits.GetMatchingDocs); }
public void AddCachedFilter(FilterKey key, Lucene.Net.Search.Filter filter) { cache.Put(key, filter); }
/// <summary> /// 搜索并返回分页数据 /// </summary> /// <param name="searchQuery"><see cref="Lucene.Net.Search.Query"/></param> /// <param name="filter"><see cref="Lucene.Net.Search.Filter"/></param> /// <param name="sort"><see cref="Lucene.Net.Search.Sort"/></param> /// <param name="pageIndex">当前页码</param> /// <param name="pageSize">每页记录数</param> /// <returns>内容为<see cref="Lucene.Net.Documents.Document"/>的分页数据集合</returns> public PagingDataSet <Document> Search(Lucene.Net.Search.Query searchQuery, Lucene.Net.Search.Filter filter, Lucene.Net.Search.Sort sort, int pageIndex, int pageSize) { return(this.Channel.Search(this.indexPath, searchQuery, filter, sort, pageIndex, pageSize)); }
/// <summary> /// 搜索并返回前topNumber条数据 /// </summary> /// <param name="searchQuery"><see cref="Lucene.Net.Search.Query"/></param> /// <param name="filter"><see cref="Lucene.Net.Search.Filter"/></param> /// <param name="sort"><see cref="Lucene.Net.Search.Sort"/></param> /// <param name="topNumber">最多返回多少条数据</param> /// <returns></returns> public IEnumerable <Document> Search(Lucene.Net.Search.Query searchQuery, Lucene.Net.Search.Filter filter, Lucene.Net.Search.Sort sort, int topNumber) { return(this.Channel.Search(this.indexPath, searchQuery, filter, sort, topNumber)); }