關鍵詞:更新題庫到ES, 圖片轉base64位碼,ik中文分詞
一、更新題庫到ES(四)
1.1 同步完成後,dzplib上題的數目
注:裏面多了一個Problem_temp表。實際上題庫的數目爲:461565道題,如下:
1.2 ik中文分詞做法
1)刪除數據庫dzplib
use dzplib ------------- db.dropDatabase();
2)刪除索引dzplib
因爲同步一直在後臺運行,所以索引不用刪除,它自己就沒了。看下面的:
就剩一個索引了,如下:
3)新建數據庫dzplib,插入一條數據如下:
use dzplib
db.Problem.insert({"comments":"test_qhz"})
db.Problem.find()
show dbs
注:如果不存在某個數據庫,可以使用,但不插入數據的話,用show dbs;是看不到那個數據庫的。
4)現在看索引是不是有了,如果有,加中文分詞(ik分詞)
a.)索引進來了,如下:
注:因爲只插入了一條數據,所以,只有一個字段,這就方便我加中文分詞了。
b.)添加Problems的中文分詞,如下:
更新後,如下:
c.)更新Paper的中文分詞,如下:
更新後,如下:
5)把題庫增加進去,如下:
覆蓋dzplib-------------------恢復數據庫dzplib
sudo mongorestore -h 127.0.0.1 -d dzplib /opt/DataBase/dzplib/
注:進行數據庫恢復時,要跳出mongo,否則會報錯。
6)查看索引dzplib,如下:
ik分詞沒有沖掉,ok。
Problem下:
Paper下:
1.3 搜索引擎接口
1)測試服務器地址如下:/app/web/api/v1/application/controllers/elasticsearch
2)elasticSearch中,上傳圖片轉base64位碼傳漢王接口-----js
函數如下:
<script type="text/javascript">
functionconvertImgToBase64(url, callback, outputFormat){
var canvas =document.createElement('CANVAS'),
ctx =canvas.getContext('2d'),
img = newImage;
img.crossOrigin = 'Anonymous';
img.onload =function(){
canvas.height = img.height;
canvas.width= img.width;
ctx.drawImage(img,0,0);
var dataURL= canvas.toDataURL(outputFormat || 'image/png');
callback.call(this, dataURL);
canvas =null;
};
img.src = url;
}
convertImgToBase64('./test1.jpg', function(base64Img){
console.log('base64Img--->',base64Img);
});
</script>
注:這是js轉64位碼,接下來爲了前期演示,找一個php轉64位碼的。
2017年3月24日星期五