echoprint
来源:互联网 发布:linux 播放器剪辑 编辑:程序博客网 时间:2024/05/01 08:59
安装数据库:tokyotyrant/
下载地址:
wget http://cloud.github.com/downloads/xurenlu/mc_list_patch_4_tokyotyrant/tokyocabinet-1.4.41.tar.gz
wget http://cloud.github.com/downloads/xurenlu/mc_list_patch_4_tokyotyrant/tokyotyrant-1.1.37.tar.gz
tar -xzf tokyotyrant-1.1.37.tar.gz 327 cd tokyocabinet-1.4.41 328 ll 329 tar -xzf tokyocabinet-1.4.41.tar.gz 330 ll 331 cd tokyocabinet-1.4.41 332 ./configure 333 make && make install 334 ll 335 cd ../ 340 cd tokyotyrant-1.1.37 341 ./configure 342 make && sudo make install 343 pwd 344 cd ../ 345 ll 346 find / -name ttserver 347 mkdir -p /ttserver/ 348 chmod 777 -R /ttserver/ 349 /usr/local/bin/ttserver -host 127.0.0.1 -port 11111 -thnum 8 -dmn -pid /ttserver/ttserver.pid -log /ttserver/ttserver.log -le -ulog /ttserver/ -ulim 128m -sid 1 -rts /ttserver/ttserver.rts /ttserver/database.tch 350 curl -X PUT http://127.0.0.1:11111/my_key -d "this is value" 351 curl http://127.0.0.1:11111/my_key 352 curl -X DELETE http://127.0.0.1:11111/my_key
安装web.py,
2, tar xvfz web.py-0.37.tar.gz
3, cd web.py-0.37
4, sudo python setup.py install
启动数据库:
ttservctl start
启动solr:
# cd /usr/local/src/echoprint/echoprint-server/solr/solr/
solr管理地址:
http://192.168.1.3:8502/solr/fp/admin/
cd echoprint-server-master\API目录, 测试数据写入读出:
>>> import fp
>>> fp.ingest({"track_id": "my_track_id", "fp": "123 40 123 60 123 80 123 90 123 110 123 130", "length": "120", "codever": "4.12"})
>>> fp.commit()
>>> r = fp.best_match_for_query("123 40 124 60 125 80 126 90 127 110 128 130 129 60 123 40 127 50")
>>> r.message()
'query code length is too small'
>>> example_code = "eJwty7kNADAMw8BVNILl-Mv-iwWCU11D0g_CQA-USIwoXNEg5YBH3o3-0sil7AHIrAyw"
>>> r = fp.best_match_for_query(example_code)
>>> r.message()
'OK (match type 3)'
>>> r.TRID
'my_track_id'
打开web.py服务,添加数据:
cd API
python api.py 8080
$ curl http://192.168.1.3:8080/ingest -d "fp_code=eJwty7kNADAMw8BVNILl-Mv-iwWCU11D0g_CQA-USIwoXNEg5YBH3o3-0sil7AHIrAyw&track_id=thisone&length=300&codever=4.12"
后台启动:
nohup python code.py 8088 > /webpy.log 2>&1 &
查询数据
http://192.168.1.3:8080/query?fp_code=eJwty7kNADAMw8BVNILl-Mv-iwWCU11D0g_CQA-USIwoXNEg5YBH3o3-0sil7AHIrAyw
开始装codegen
https://github.com/echonest/echoprint-codegen
(http://blog.163.com/yungang_z/blog/static/175153133201262445539767/)
安装# yum install zlib zlib-devel
# yum install ffmpeg boost taglib
# yum install ffmpeg-devel boost-devel taglib-devel
如果ffmpeg安装不成功,使用以下方法:
开始安装codegen:
389 unzip echoprint-codegen-master.zip
390 ll
391 mv echoprint-codegen-master echoprint-codegen
392 cd echoprint-codegen
397 cd src/
398 ll
399 whereis boost
400 vi Makefile //edit BOOST_CFLAGS and other variables as necessary
401 make
402 cd ..
403 ll
# ./echoprint-codegen billie_jean.mp3 10 30
# cd /usr/local/src/echoprint/echoprint-server/util
440 mkdir /music
444 ll /music
445 find /music -name "*.mp3" > music_to_ingest
446 ./echoprint-codegen -s < music_to_ingest > allcodes.json
# python splitdata.py /usr/local/src/echoprint/echoprint-codegen/allcodes.json
(http://blog.sina.com.cn/s/blog_7985987f010196c1.html)
安装python-setuptools
wget –q http://peak.telecommunity.com/dist/ez_setup.py
python ez_setup.py
[root@MIO-03 pyechonest-master]# python setup.py install
pyechonest:
Your API Key: G1QCI9RB0AIJKXTJN
Your Consumer Key: 5cd12bae2c16f47e3e14c3eef93e037c
Your Shared Secret: +EniaamaQgiSd8nRQ07a2g
ps -ef | grep solr
操作手册
启动数据库:
ttservctl restart
启动solr:
# cd /usr/local/src/echoprint/echoprint-server/solr/solr/
# java -Dsolr.solr.home=/usr/local/src/echoprint/echoprint-server/solr/solr/solr/ -Djava.awt.headless=true -jar start.jar
solr管理地址:
http://172.16.146.129:8502/solr/fp/admin/
原生的数据操作:
tcrmgr list -port 1978 172.16.146.129
curl -X PUT http://172.16.146.129:1978/mykey -d "this is value"
curl http://172.16.146.129:1978/thisone2
curl -X DELETE http://172.16.146.129:1978/my_key
命令行测试数据写入读出:
cd /usr/local/src/echoprint/echoprint-server/API目录,
>>> import fp
>>> fp.ingest({"track_id": "my_track_id", "fp": "123 40 123 60 123 80 123 90 123 110 123 130", "length": "120", "codever": "4.12"})
>>> fp.delete(['my_track_id-0','thisfour-0'])
>>> fp.commit()
>>> r = fp.best_match_for_query("123 40 124 60 125 80 126 90 127 110 128 130 129 60 123 40 127 50")
>>> r.message()
'query code length is too small'
>>> example_code = "eJwty7kNADAMw8BVNILl-Mv-iwWCU11D0g_CQA-USIwoXNEg5YBH3o3-0sil7AHIrAyw"
>>> r = fp.best_match_for_query(example_code)
>>> r.message()
'OK (match type 3)'
>>> r.TRID
'my_track_id'
web测试数据读写:
打开web.py服务,开启8080端口,添加数据:
cd /usr/local/src/echoprint/echoprint-server/API
python api.py 8080
模拟post提交添加数据:
$ curl http://172.16.146.129:8080/ingest -d "fp_code=eJwty7kNADAMw8BVNILl-Mv-iwWCU11D0g_CQA-USIwoXNEg5YBH3o3-0sil7AHIrAyw&track_id=thisone&length=300&codever=4.12"
$ curl http://172.16.146.129:8080/ingest -d "fp_code=eJwty7kNADAMw8BVNILl-Mv-iwWCU11D0g_CQA-USIwoXNEg5YBH3o3-0sil7AHIrAyw&track_id=enya&length=300&codever=4.12"
查询数据
http://172.16.146.129:8080/query?fp_code=eJwty7kNADAMw8BVNILl-Mv-iwWCU11D0g_CQA-USIwoXNEg5YBH3o3-0sil7AHIrAyw
123 40 124 60 125 80 126 90 127 110 128 130 129 60 123 40 127 50 127 60
solr返回json:&wt=json
http://172.16.146.129:8502/solr/fp/select/?q=123+40+124+60+125+80+126+90+127+110+128+130+129+60+123+40+127+50+127+60&version=2.2&start=0&rows=10&indent=on&wt=json
通过ID查询:
http://172.16.146.129:8502/solr/fp/select/?q=track_id:thisone-0&version=2.2&start=0&rows=10&indent=on&wt=json
转码
http://172.16.146.129:8080/decode?fp_code=eJwty7kNADAMw8BVNILl-Mv-iwWCU11D0g_CQA-USIwoXNEg5YBH3o3-0sil7AHIrAyw
到这里又可以用命令行去查数据,会现r.TRID变成了刚ingent的ID:
>>> r.TRID
'thisone'
通过codegen把mp3信息生成json文件,
cd /usr/local/src/echoprint/echoprint-codegen
# ./echoprint-codegen Kalimba.mp3 10 30
find /music -name "*.mp3" > music_to_ingest
./echoprint-codegen -s < music_to_ingest > allcodes.json
然后在server里把这个json数据添加进去;
cd /usr/local/src/echoprint/echoprint-server/util
python fastingest.py /usr/local/src/echoprint/echoprint-codegen/allcodes.json
python splitdata.py /usr/local/src/echoprint/echoprint-codegen/allcodes.json
- echoprint
- echoPrint.php
- Echoprint系列--编译
- Echoprint系列--Android编译与调用
- Struts2文件上传
- HDOJ 4474 Yet Another Multiple Problem(BFS + 剪枝)
- C# 委托的发展 delegate, anonymous method and lambda
- CF#272 (Div. 2) B.(dfs)
- 关于struts2的注解
- echoprint
- 常用url
- 堆排序(C语言版)
- 使用zTree控件制作的表格形式的树形+数据菜单
- 6-1 多态性与虚函数
- 6-2 多态性与虚函数
- C# Usage of CallerInformation
- SEO数据分析之搜索下拉框
- STL之List