js(jquery方式) 直接访问 elasticsearch,
尝试了下,浏览器直接通过js操作elasticsearch。这种方式无需后台服务器了,而且程序业务逻辑都在js里面,代码更新直接替换 原有js和html页面即可,快速便捷,但安全性没有任何保证。
安全方面,前端业务逻辑部分,可以采用压缩加混淆方式;
后端数据请求可以采用nginx进行代理转发,然后使用nginx-lua 编写对应权限判断代码,进行请求权限控制。
<!DOCTYPE html>
<html lang="UTF-8">
<head>
<meta charset="UTF-8">
<title></title>
<script src="https://cdn.bootcss.com/jquery/3.3.1/jquery.min.js"></script>
<script src="https://cdn.bootcss.com/elasticsearch/14.1.0/elasticsearch.jquery.js"></script>
</head>
<body>
<div id="message">
</div>
</body>
<script>
var client = new $.es.Client({
//连接的服务器
hosts: '192.168.251.7:9200'
});
// 获取状态,参数可选,可以只传递一个回调
client.cluster.health(function (err, resp) {
if (err) {
$("#message").append(err.message + "<br\>");
console.error(err.message);
} else {
console.dir(resp);
$("#message").append("server status: " + resp.status + "<br\>");
}
});
var data = {
title: 'test!',
content: 'It all started when...',
date: '2018-03-11'
};
// 建立索引, 添加数据
client.index({
index: 'blog',
type: 'post',
id: 1,
body: data
}, function (err, resp) {
console.dir(resp);
console.dir(err);
$("#message").append("add data result: " + resp.result + "<br\>");
});
// 搜索文档
client.search({
index: 'blog',
size: 50,
body: {
query: {
match: {
title : 'test'
}
}
}
}).then(function (resp) {
console.dir(resp);
$("#message").append("search data total num : " + resp.hits.total + "<br\>");
});
</script>
</html>
本站文章为和通数据库网友分享或者投稿,欢迎任何形式的转载,但请务必注明出处.
同时文章内容如有侵犯了您的权益,请联系QQ:970679559,我们会在尽快处理。