37 alg = std::make_unique<hnswlib::BruteforceSearch<float>>(
space, n);
49 return std::vector<std::pair<float, hnswlib::labeltype> >();
54 std::size_t index = 0;
65 std::ifstream file(filename);
67 if (!file.is_open()) {
73 std::map<std::string, std::vector<float>>
vectors;
75 std::string full_line;
76 std::getline(file, full_line);
77 std::istringstream line(full_line);
80 getline(line, key,
',');
83 std::vector<float> row;
84 while (getline(line, field,
',')) {
85 auto val = (float)atof(field.c_str());
89 if (row.size() != 0) {
104 const auto results =
knnQuery(query, numMatches);
107 if (results.size() > 0)
111 for (std::size_t i = 0; i < results.size(); ++i) {
~NearestNeighbourSearch()
Definition NearestNeighbourSearch.cpp:43
hnswlib::SpaceInterface< float > * space
Definition NearestNeighbourSearch.h:51
std::vector< std::pair< float, hnswlib::labeltype > > knnQuery(std::string query, int k)
Definition NearestNeighbourSearch.cpp:45
Dataset dataset
Definition NearestNeighbourSearch.h:48
NearestNeighbourSearch(std::string datasetPath)
Definition NearestNeighbourSearch.cpp:13
void getNearestNeighbours(const std::string &query, const int numMatches, std::vector< std::string > &returnResults)
Definition NearestNeighbourSearch.cpp:101
std::unique_ptr< hnswlib::BruteforceSearch< float > > alg
Definition NearestNeighbourSearch.h:49
std::unique_ptr< hnswlib::InnerProductSpace > m_spaceInstance
Definition NearestNeighbourSearch.h:53
void addDatasetItems()
Definition NearestNeighbourSearch.cpp:52
Definition AirAbsorptionFilter.cpp:2
Definition NearestNeighbourSearch.h:22
std::map< std::string, std::vector< float > > vectors
Definition NearestNeighbourSearch.h:24
std::vector< std::string > filenames
Definition NearestNeighbourSearch.h:23
static Dataset read_embeddings(const std::string &filename)
Definition NearestNeighbourSearch.cpp:64