第96篇ES与一对一的整合及图像识别跨域问题解决

来源:互联网 发布:淘宝店招图片怎么做 编辑:程序博客网 时间:2024/06/05 18:02

关键词:ES与一对一的整合,图像识别跨域问题解决

ES与一对一的整合

1.1 在备份服务器上进行整合

1备份老师端如下:

https://123.57.206.36:9006/demos/index.html?roomid=1912&t=300&imgUrl=http://123.57.206.36:8003/uploadfiles/2016/11/1478143874gHeUlH.jpeg

2)本地如下:

https://localhost:9006/demos/index.html?roomid=1912&t=300&imgUrl=http://123.57.206.36:8003/uploadfiles/2016/11/1478143874gHeUlH.jpeg

 

3)需求如下:

1.2 开发

1)先来一个span

<span id="ES_answer"class="studentStatues studentOffline">搜答案</span>

2)点击获取图像URL

实现了,代码如下:

function getAnsES(){

                  varurl = $("#qustionImg").attr("src");

    if (url =="") {

       MyAlert("问题图片不存在", "false", "", "","auto", "auto", 1, 1, {

            text:"我知道了",

           function() {}

        });

        return;

    }

    //var url ='http://123.57.206.36:8003/uploadfiles/2016/11/1478143874gHeUlH.jpeg';

   console.log('url-->',url);

}

3图像识别代码整合到搜索接口中去(生产上)

 现在的策略是写两个接口:一是图像识别接口,二是ES检索接口,具体如下:

a.)文字检索接口,如下:

http://api.dz101.com/v1/elasticsearch/search/searchs?keyword=1

注:我把接口参数改为一个了,类型type=1去掉了。

b.)图像识别接口

需要传一个参数$img_upload,用法如下:

http://api.dz101.com/v1/elasticsearch/imgReco/imgRecos?img_upload=http://upload.dz101.com/uploadfiles/2017/04/1491828189mBBNL0.jpg

效果如下:

4测试上

http://192.168.1.14:8004/v1/elasticsearch/imgReco/imgRecos?img_upload=http://upload.dz101.com/uploadfiles/2017/04/1491828189mBBNL0.jpg

http://192.168.1.14:8004/v1/elasticsearch/search/searchs?type=1&keyword=%E9%AB%98%E4%B8%AD%E7%89%A9%E7%90%86

1.3 elasticsearchnodejs客户端

网址如下:https://github.com/elastic/elasticsearch-js

注:它的研究方法可以参考elasticsearch-php来搞,反正都是操作elasticsearch的。

1备用服务器上有问题图片

老师端:

https://123.57.206.36:9006/demos/index.html?roomid=1912&t=300&imgUrl=http://upload.dz101.com/uploadfiles/2017/04/1491828189mBBNL0.jpg

学生端:

https://123.57.206.36:9006/demos/student.html#1912

1.4 测跨域端口

1正视一个问题

  启动node server.jsapp.js,先杀死旧进程,之后,再用如下命令启动进程,如下:

a 查找那个进程

ps-aux |grep node

b杀死上面的那个进程(22147),程序如下:

kill-9 22147

c)启动进程---注:前提是进入那个文件夹

nohupnode server.js &

nohupnode app.js &

2一个bug

POSThttps://stt.dz101.com:3636/searchWithImg/http:,,upload.dz101.com,uploadfiles,2017,04,1491828189mBBNL0.jpgnet::ERR_INSECURE_RESPONSE

这个问题是拦截造成的,修改方法如下:

注:先运行一个跨域,把拦截跳过去,就成。允许之后,如下:

3跨域解决流程

a.)描述:

  现在白板上用的是https的,但需要调用一些http的接口,这就涉及到跨域问题,解决办法是:在服务器端调用http的接口,之后,把数据返回。

b.)看个例子---图像识别

第一步:先给出一个图标+一个单击函数----------------------index.html

   <div class="connectionStatus">

                <spanid="studentStatues" class="studentStatuesstudentOffline">等待学生

上线</span>

                 <spanid="searchAns" class="studentStatues studentOffline"

onclick="getAnsES()">搜答案</span>

    </div>

第二步:getAnsES()函数如下:----------------------index.html

function getAnsES(errorCallBack) {

   var imgurl ='http://upload.dz101.com/uploadfiles/2017/04/1491828189mBBNL0.jpg';

    imgurl = imgurl.replace(/\//g, ",");

    $.post(assistBaseUrl+"/searchWithImg/"+ imgurl,

       function(data, status) {

           //alert("Data: " + data + "\nStatus: " + status);

           console.log("Data: " + data + "\nStatus: " +status);

       });

}

注:这个图片的地址是写死的,路走通了,后期慢慢搞。传之前,要对imgurl进行改变,把斜杠全替换为逗号。之后传给服务器,服务器接收如下。

第三步:服务器接收------------------------------------app.js

注:如果修改了app.js,用之前要重新启动,否则不生效。图像识别如下:

app.post('/searchWithImg/:imageUrl',searchWithImg);

注:这里面调用了一个图像识别接口(http://apis.baidu.com/idl_baidu/baiduocrpay/idlocrpaid)是http的,所以必须用这种方法返回数据。还有一点是怎么看返回数据日志,可以看一个nohup.out里面

2017年4月06日星期四

1 0
原创粉丝点击