Currently we're parsing the query into a QueryBuilder, then transforming that into a Lucene Query, and then using the Query::visit function to extract the start/end time of the query. While this works well enough for certain queries, it requires us to have the full schema in the Query Node ahead of time, and fails any queries that need said schema. Instead, we should use the QueryBuider::visit functions to recurse through the tree and extract the start/end times as that's far simpler, faster, and doesn't require a full schema
Requirements
[X] I've read and understood the Contributing Guidelines and have done my best effort to follow them.
Summary
Currently we're parsing the query into a
QueryBuilder
, then transforming that into a LuceneQuery
, and then using theQuery::visit
function to extract the start/end time of the query. While this works well enough for certain queries, it requires us to have the full schema in the Query Node ahead of time, and fails any queries that need said schema. Instead, we should use theQueryBuider::visit
functions to recurse through the tree and extract the start/end times as that's far simpler, faster, and doesn't require a full schemaRequirements