我正在使用nodejs / express进行webapp并将数据存储在弹性搜索中。我想在弹性搜索中添加类似用户配置文件的内容,当我将其调出时调用方法。我已经习惯了Java / C#所以我希望能做类似
的事情var user = new User(elasticSearchResult)
user.getUserRoles()
构造函数将解析数据,类将包含我需要的所有方法。
答案 0 :(得分:1)
你需要这个https://www.npmjs.com/package/elasticsearch 然后,您可以为该User类创建函数
User.getUserRoles = function(){
client.search({
index: ....,
type: ....
body: {
query: {
....
}
}
}).then(function (resp) {
//Handle records return here
}, function (err) {
//handle error here
});
答案 1 :(得分:0)
我最终将此用于我的用户类
var proto = User.prototype;
function User(){}
proto.setRoles = function(roles) {
this.roles = roles;
};
proto.fromJson = function(json) {
if(json._source) { // From ElasticSearch query
this.roles = json._source.roles;
}
};
exports.User = User;
在我的通话班中
var user = new UserClass.User();
db.searchForUser(user.email, function(err, success) {
if (success.hits.total == 1) {
var userFromDb = success.hits.hits[0];
user.fromJson(userFromDb);
return done(null, user);
}
});
如果有人想知道,这是我的searchForUser方法
exports.searchForUser = function (email, callback) {
var qryObj = {
"query": {
"bool": {
"must": [
{
"match": {
"email": email
}
}
]
}
}
};
client.search ({index:'myindex', type:'user', body: qryObj}, callback);
};