Inheritance: Lucene.Net.Search.Collector, IGroupCollector
コード例 #1
0
 public IEnumerable<LocationGroup> FindGroupedLocations(string query, ILocationGroupingStrategy groupingStrategy)
 {
     var wildcardQuery = query.Trim() + "*";
     var queryFields = groupingStrategy.Fields;
     if (query.Any(c => Char.IsDigit(c)))
        queryFields = queryFields.Concat(new List<LocationQueryField>() {_queryFields.HouseNumber});
     var luceneQuery = GenerateLuceneQuery(wildcardQuery, queryFields);
     var collector = new GroupCollector(_locationGroupBuilder, groupingStrategy.Fields);
     _searcher.Search(luceneQuery, collector);
     return collector.Groups.OrderBy(g => g.GroupDescription, new AlphanumericComparerFast());
 }
コード例 #2
0
        public QueryThread(string query, IndexSearcher searcher, int threadno, Analyzer analyzer, Action<string> callback)
        {
            _query = query;
            _searcher = searcher;
            _threadno = threadno;
            _analyzer = analyzer;
            _callback = callback;

            _formatter = new TitleCaseFormatter();
            _formatConditions = new LocationDataFieldFormatConditions();

            var queryFields = new LuceneQueryFields();
            var collector = new GroupCollector(new LocationGroupBuilder(new ConditionalFormatter<string,LocationDataField>(_formatter,_formatConditions))
                , new List<LocationQueryField>()
                {
                    queryFields.Street,
                    queryFields.Town,
                    queryFields.PostCode
                });
            _collector = collector;
        }