/// <summary> /// Compiles an <see cref="SnQuery"/> to <see cref="LucQuery"/>. /// </summary> public LucQuery Compile(SnQuery snQuery, IQueryContext context) { var visitor = new SnQueryToLucQueryVisitor(_masterAnalyzer, context); visitor.Visit(snQuery.QueryTree); var searchManager = ((ILuceneIndexingEngine)IndexManager.IndexingEngine).LuceneSearchManager; return(LucQuery.Create(visitor.Result, searchManager)); }
private LucQuery Compile(SnQuery query, IQueryContext context) { var indexingEngine = (Lucene29LocalIndexingEngine)IndexManager.IndexingEngine; var analyzer = indexingEngine.GetAnalyzer(); var visitor = new SnQueryToLucQueryVisitor(analyzer, context); visitor.Visit(query.QueryTree); var result = LucQuery.Create(visitor.Result, indexingEngine.LuceneSearchManager); result.Skip = query.Skip; result.Top = query.Top; result.SortFields = query.Sort?.Select(s => CreateSortField(s.FieldName, s.Reverse)).ToArray() ?? new SortField[0]; result.EnableAutofilters = query.EnableAutofilters; result.EnableLifespanFilter = query.EnableLifespanFilter; result.QueryExecutionMode = query.QueryExecutionMode; result.CountOnly = query.CountOnly; result.CountAllPages = query.CountAllPages; return(result); }