GENIE
search.cc
Go to the documentation of this file.
1 #include <iostream>
5 #include <genie/interface/io.h>
7 
8 using namespace std;
9 using namespace genie;
10 
11 SearchResult genie::Search(shared_ptr<ExecutionPolicy>& policy,
12  const string& table_filename,
13  const string& query_filename)
14 {
15  TableData table_data = LoadTableDataFromCsv(table_filename);
16  QueryData query_data = LoadQueryDataFromCsv(query_filename, policy);
17 
18  shared_ptr<genie::table::inv_table> table = BuildTable(policy, table_data);
19  vector<genie::query::Query> queries = BuildQuery(policy, table, query_data);
20 
21  return Match(policy, table, queries);
22 }
23 
24 shared_ptr<genie::table::inv_table> genie::BuildTable(shared_ptr<genie::ExecutionPolicy>& policy,
25  const TableData& table_data)
26 {
27  return policy->BuildTable(table_data);
28 }
29 
30 vector<genie::query::Query> genie::BuildQuery(shared_ptr<genie::ExecutionPolicy>& policy,
31  const shared_ptr<genie::table::inv_table>& table,
32  const QueryData& query_data)
33 {
34  return policy->BuildQuery(table, query_data);
35 }
36 
37 SearchResult genie::Match(shared_ptr<genie::ExecutionPolicy>& policy,
38  const shared_ptr<genie::table::inv_table>& table,
39  const vector<genie::query::Query>& queries)
40 {
41  return policy->Match(table, queries);
42 }
SearchResult Match(std::shared_ptr< genie::ExecutionPolicy > &policy, const std::shared_ptr< genie::table::inv_table > &table, const std::vector< genie::query::Query > &queries)
2nd-level interface for matching with pre-built table and queries.
QueryData LoadQueryDataFromCsv(const std::string &filename, const std::shared_ptr< const ExecutionPolicy > &policy)
Reads query from a CSV file and returns in QueryData format.
This is the top-level namespace of the project.
std::vector< std::vector< int > > QueryData
Raw query data format used for building the queries.
Definition: types.h:16
SearchResult Search(std::shared_ptr< genie::ExecutionPolicy > &policy, const std::string &table_filename, const std::string &query_filename)
1st-level interface for end-to-end matching with given table and query CSV file paths.
std::shared_ptr< genie::table::inv_table > BuildTable(std::shared_ptr< genie::ExecutionPolicy > &policy, const TableData &table_data)
2nd-level interface for building table with TableData.
std::vector< std::vector< int > > TableData
Raw table data format used for building the table.
Definition: types.h:12
TableData LoadTableDataFromCsv(const std::string &filename)
Reads data from a CSV file and returns in TableData format.
std::vector< genie::query::Query > BuildQuery(std::shared_ptr< genie::ExecutionPolicy > &policy, const std::shared_ptr< genie::table::inv_table > &table, const QueryData &query_data)
2nd-level interface for building queries with table and QueryData.
std::pair< std::vector< int >, std::vector< int > > SearchResult
Matching result (top K&#39;s ID and count).
Definition: types.h:20