17 #ifndef JUBATUS_CORE_NEAREST_NEIGHBOR_EUCLID_LSH_HPP_
18 #define JUBATUS_CORE_NEAREST_NEIGHBOR_EUCLID_LSH_HPP_
24 #include "jubatus/util/data/serialization.h"
25 #include "jubatus/util/lang/shared_ptr.h"
33 namespace nearest_neighbor {
45 template <
typename Ar>
47 ar & JUBA_MEMBER(hash_num);
53 jubatus::util::lang::shared_ptr<storage::column_table> table,
54 const std::string&
id);
57 jubatus::util::lang::shared_ptr<storage::column_table> table,
58 std::vector<storage::column_type>& schema,
59 const std::string&
id);
61 virtual std::string
type()
const {
68 std::vector<std::pair<std::string, float> >& ids,
69 uint64_t ret_num)
const;
71 const std::string& query,
72 std::vector<std::pair<std::string, float> >& ids,
73 uint64_t ret_num)
const;
81 void fill_schema(std::vector<storage::column_type>& schema);
88 std::vector<std::pair<std::string, float> >& ids,
89 uint64_t ret_num)
const;
99 #endif // JUBATUS_CORE_NEAREST_NEIGHBOR_EUCLID_LSH_HPP_
virtual void neighbor_row(const common::sfv_t &query, std::vector< std::pair< std::string, float > > &ids, uint64_t ret_num) const
uint64_t first_column_id_
storage::const_bit_vector_column & lsh_column() const
void fill_schema(std::vector< storage::column_type > &schema)
storage::const_float_column & norm_column() const
virtual float calc_similarity(float distance) const
void neighbor_row_from_hash(const storage::bit_vector &bv, float norm, std::vector< std::pair< std::string, float > > &ids, uint64_t ret_num) const
virtual std::string type() const
std::vector< std::pair< std::string, float > > sfv_t
void set_config(const config &conf)
virtual void set_row(const std::string &id, const common::sfv_t &sfv)
euclid_lsh(const config &conf, jubatus::util::lang::shared_ptr< storage::column_table > table, const std::string &id)