1 #ifndef GENIE_EXECUTION_POLICY_SINGLE_RANGE_H_ 2 #define GENIE_EXECUTION_POLICY_SINGLE_RANGE_H_ 8 namespace execution_policy {
13 uint32_t query_range_;
16 virtual std::shared_ptr<genie::table::inv_table>
BuildTable(
18 virtual std::vector<genie::query::Query>
BuildQuery(
19 const std::shared_ptr<const genie::table::inv_table>& table,
22 const std::shared_ptr<const genie::table::inv_table>& table,
23 const std::vector<genie::query::Query>& queries)
override final;
25 const std::vector<std::shared_ptr<const genie::table::inv_table> >& table,
26 const std::vector<std::vector<genie::query::Query> >& queries)
override final;
27 virtual void Validate()
override final;
This is the top-level namespace of the project.
std::vector< std::vector< int > > QueryData
Raw query data format used for building the queries.
std::vector< std::vector< int > > TableData
Raw table data format used for building the table.
virtual std::shared_ptr< genie::table::inv_table > BuildTable(const genie::TableData &table_data) override final
Builds the inverted index with the given data.
virtual std::vector< genie::query::Query > BuildQuery(const std::shared_ptr< const genie::table::inv_table > &table, const genie::QueryData &query_data) override final
Builds the queries with the given query data.
void SetQueryRange(const uint32_t query_range)
std::pair< std::vector< int >, std::vector< int > > SearchResult
Matching result (top K's ID and count).
Config class holds all user configurable settings of GENIE.
std::shared_ptr< ExecutionPolicy > MakePolicy(const Config &config)
Builds and returns a policy according to the configurations.
virtual void Validate() override final
Checks whether the given search parameters are in valid range.
ExecutionPolicy class is the interface for building table, building query, and matching.
virtual genie::SearchResult Match(const std::shared_ptr< const genie::table::inv_table > &table, const std::vector< genie::query::Query > &queries) override final
Match the given queries on the table.