17 #ifndef JUBATUS_CORE_RECOMMENDER_MINHASH_HPP_
18 #define JUBATUS_CORE_RECOMMENDER_MINHASH_HPP_
23 #include "jubatus/util/data/serialization.h"
24 #include "jubatus/util/lang/shared_ptr.h"
27 #include "../storage/bit_index_storage.hpp"
32 class bit_index_storage;
34 namespace recommender {
47 ar & JUBA_MEMBER(hash_num);
52 explicit minhash(
const config& config);
57 std::vector<std::pair<std::string, float> >& ids,
58 size_t ret_num)
const;
61 std::vector<std::pair<std::string, float> >& ids,
62 size_t ret_num)
const;
67 std::string
type()
const;
72 void unpack(msgpack::object o);
79 static float calc_hash(uint64_t a, uint64_t b,
float val);
80 static void hash_mix64(uint64_t& a, uint64_t& b, uint64_t& c);
86 jubatus::util::lang::shared_ptr<storage::mixable_bit_index_storage>
94 #endif // JUBATUS_CORE_RECOMMENDER_MINHASH_HPP_
void calc_minhash_values(const common::sfv_t &sfv, core::storage::bit_vector &bv) const
void update_row(const std::string &id, const sfv_diff_t &diff)
void similar_row(const common::sfv_t &query, std::vector< std::pair< std::string, float > > &ids, size_t ret_num) const
void neighbor_row(const common::sfv_t &query, std::vector< std::pair< std::string, float > > &ids, size_t ret_num) const
void pack(framework::packer &packer) const
jubatus::util::lang::shared_ptr< storage::mixable_bit_index_storage > mixable_storage_
core::common::sfv_t sfv_diff_t
void clear_row(const std::string &id)
framework::mixable * get_mixable() const
static const uint64_t hash_prime
void get_all_row_ids(std::vector< std::string > &ids) const
msgpack::packer< jubatus_packer > packer
static float calc_hash(uint64_t a, uint64_t b, float val)
void unpack(msgpack::object o)
static void hash_mix64(uint64_t &a, uint64_t &b, uint64_t &c)
std::vector< std::pair< std::string, float > > sfv_t