17 #ifndef JUBATUS_CORE_RECOMMENDER_EUCLID_LSH_HPP_
18 #define JUBATUS_CORE_RECOMMENDER_EUCLID_LSH_HPP_
24 #include "jubatus/util/data/unordered_map.h"
25 #include "jubatus/util/concurrent/lock.h"
26 #include "jubatus/util/concurrent/mutex.h"
27 #include "jubatus/util/lang/shared_ptr.h"
28 #include "jubatus/util/text/json.h"
34 template <
typename Model,
typename Diff>
35 class linear_mixable_helper;
40 typedef jubatus::util::data::unordered_map<std::string, lsh_entry>
45 namespace recommender {
72 & JUBA_MEMBER(hash_num)
73 & JUBA_MEMBER(table_num)
74 & JUBA_MEMBER(bin_width)
75 & JUBA_MEMBER(probe_num)
77 & JUBA_MEMBER(retain_projection);
87 std::vector<std::pair<std::string, float> >& ids,
88 size_t ret_num)
const;
90 const std::string&
id,
91 std::vector<std::pair<std::string, float> >& ids,
92 size_t ret_num)
const;
96 std::vector<std::pair<std::string, float> >& ids,
97 size_t ret_num)
const;
99 const std::string&
id,
100 std::vector<std::pair<std::string, float> >& ids,
101 size_t ret_num)
const;
103 virtual void clear();
104 virtual void clear_row(
const std::string&
id);
108 virtual std::string
type()
const;
113 void unpack(msgpack::object o);
121 jubatus::util::lang::shared_ptr<storage::mixable_lsh_index_storage>
126 mutable jubatus::util::data::unordered_map<uint32_t, std::vector<float> >
136 #endif // JUBATUS_CORE_RECOMMENDER_EUCLID_LSH_HPP_
storage::lsh_index_storage lsh_index_storage
framework::linear_mixable_helper< lsh_index_storage, lsh_master_table_t > mixable_lsh_index_storage
static const uint64_t DEFAULT_TABLE_NUM
virtual void similar_row(const common::sfv_t &query, std::vector< std::pair< std::string, float > > &ids, size_t ret_num) const
jubatus::util::data::unordered_map< uint32_t, std::vector< float > > projection_cache_
static const uint64_t DEFAULT_HASH_NUM
virtual void similar_row(const common::sfv_t &query, std::vector< std::pair< std::string, float > > &ids, size_t ret_num) const =0
virtual void neighbor_row(const common::sfv_t &query, std::vector< std::pair< std::string, float > > &ids, size_t ret_num) const
virtual void get_all_row_ids(std::vector< std::string > &ids) const
jubatus::util::data::unordered_map< std::string, lsh_entry > lsh_master_table_t
core::common::sfv_t sfv_diff_t
virtual std::string type() const
void pack(framework::packer &packer) const
static const uint32_t DEFAULT_SEED
static const bool DEFAULT_RETAIN_PROJECTION
msgpack::packer< jubatus_packer > packer
std::vector< float > get_projection(uint32_t seed) const
virtual void update_row(const std::string &id, const sfv_diff_t &diff)
void unpack(msgpack::object o)
virtual void neighbor_row(const common::sfv_t &query, std::vector< std::pair< std::string, float > > &ids, size_t ret_num) const =0
std::vector< std::pair< std::string, float > > sfv_t
static const uint32_t DEFAULT_NUM_PROBE
std::vector< float > calculate_lsh(const common::sfv_t &query) const
virtual void clear_row(const std::string &id)
jubatus::util::concurrent::mutex cache_lock_
framework::mixable * get_mixable() const
jubatus::util::lang::shared_ptr< storage::mixable_lsh_index_storage > mixable_storage_
static const float DEFAULT_BIN_WIDTH