コード例 #1
0
        private MultiFacetRequest BuildRequest(int maxResults)
        {
            var request = new MultiFacetRequest
            {
                Query      = Query,
                Sort       = SortFields.ToList(),
                MaxResults = maxResults,
                Config     = FacetSearcherConfiguration.Default(),
                Facets     = new List <FacetFieldInfo>()
            };

            foreach (var field in Fields)
            {
                if (field.MinHits > 0)
                {
                    request.Config.MinimumCountInTotalDatasetForFacet = field.MinHits;
                }

                var fieldInfo = new FacetFieldInfo
                {
                    FieldName = field.Name,
                    MaxToFetchExcludingSelections = field.MaxCount
                };

                if (field.Values != null)
                {
                    fieldInfo.Selections = field.Values.ToList();
                }

                request.Facets.Add(fieldInfo);
            }

            return(request);
        }
コード例 #2
0
        public MultiFacetQuery(ISearchContext searchContext, string category, Analyzer analyzer, string[] fields, LuceneSearchOptions searchOptions, BooleanOperation occurance)
            : base(searchContext, category, analyzer, fields, searchOptions, occurance)
        {
            _searchContext = searchContext;

            _request = new MultiFacetRequest
            {
                Query  = Query,
                Sort   = SortFields,
                Config = FacetSearcherConfiguration.Default(),
                Facets = new List <FacetFieldInfo>()
            };
        }