百度文字识别API接入
First 一个偶然的链接进去了百度的管理控制台,一扫而过的各种功能真是厉害了。然后看到文字识别,之前帮别人开发一个模拟登陆获取数据(有点像爬虫),有个很关键的点就是验证码了。想了想百度可以文字识别,验证码就不过也如此。
注册百度账号
在文字识别添加一个应用
复制APPid和APPsecret
填写获取token的地址
发送请求String url = "https://aip.baidubce.com/oauth/2.0/token"; JSONObject obj=new JSONObject(); obj.put("grant_type", "client_credentials"); obj.put("client_id", "XXX"); obj.put("client_secret", "YYY"); ...
SpringAOP初体验
AOPAOP(Aspect Oriented Programming),即面向切面编程,可以说是OOP(Object Oriented Programming,面向对象编程)的补充和完善。OOP引入封装、继承、多态等概念来建立一种对象层次结构,用于模拟公共行为的一个集合。不过OOP允许开发者定义纵向的关系,但并不适合定义横向的关系,例如日志功能。日志代码往往横向地散布在所有对象层次中,而与它对应的对象的核心功能毫无关系对于其他类型的代码,如安全性、异常处理和透明的持续性也都是如此,这种散布在各处的无关的代码被称为横切(cross cutting),在OOP设计中,它导致了大量代码的重复,而不利于各个模块的重用。
AOP技术恰恰相反,它利用一种称为”横切”的技术,剖解开封装的对象内部,并将那些影响了多个类的公共行为封装到一个可重用模块,并将其命名为”Aspect”,即切面。所谓”切面”,简单说就是那些与业务无关,却为业务模块所共同调用的逻辑或责任封装起来,便于减少系统的重复代码,降低模块之间的耦合度,并有利于未来的可操作性和可维护性。
使用”横切”技术,AOP把软件系统分为两个部分:核心 ...
linux下Elasticsearch插件安装笔记(head,sql)
说明 这里的版本是es5.1.2,不适用5.x以下,5.x以下是用插件的形式安装在es上面,具体看git。 安装的目录,和解压的目录都可以随便选的,但是为了统一管理,最好全部插件安装在es的根目录下(个人建议),因为我这里此前有人安装过相关的插件,分散在不同的目录,搞起来让我很懵逼。
elasticsearch-headgithub链接 elasticsearch-head head 插件在window安装跟linux安装操作步骤基本相似,这里就介绍linux下安装即可。1.首先需要git clone head 插件到本地,在linux上使用git命令也行,下载到本地再上传到linux服务器也行,哪方便行。2.安装npm:使用国外镜像会比较慢,所以使用淘宝镜像,很快的。
wget https://npm.taobao.org/mirrors/node/latest-v4.x/node-v4.4.7-linux-x64.tar.gz
3.解压:
tar -zxvf node-v4.4.7-linux-x64.tar.gz
4.设 ...
Elasticsearch-sql-5.1.2笔记
elasticsearch-sql-5.1.2elasticsearch-sql
ElasticSearch-sql 是es的插件之一,通过类sql查询es。最近更新了最新的5.1.2版本,出现某些异常情况。使用groupby的时候查询的时候只有10条,出现这个问题,尝试了在issue找答案,找到了发送请求的时候要设置size的大小,而sql插件源码包里面写死了200和10,至于怎么找出来的,我也是在别人的博客里面看到的,**blog**。因此,通过修改源码重新打包即可解决我的问题(源码包就跟打好的jar包放一起,名字也写上了source),修改两个位置,如下line 76:这个位置是最后一次查询条数,改成Integer.MAX_VALUE。
if(select.getRowCount()>0) { ((TermsAggregationBuilder) lastAgg).size(Integer.MAX_VALUE); }
line 109:这个位置是重点,每次的子查询都要设置size,改成Int ...
Elasticsearch 笔记-插件
delete-by-query插件使用TransportClient.builder().settings(settings).addPlugin(DeleteByQueryPlugin.class).build();
deleteByQuery插件是通过按照查询出来的doc 来进行删除操作。
es的集群都需要安装deleteByQuery 插件,到es的安装目录里执行plugin install deletebyQuery命令则可安装
es安装完需要重启,重新加载插件
客户端创建时需要添加plugin的支持如上面代码
eg:
/** * es 查询删除操作 * @param index 索引 * @param type 类型 * @param column 删除字段的列名 * @param deleteValue 删除字段值 * @return long 删除结果 */ public long deleteByQuery (String index,String type,String column,String deleteValue) & ...
common-csv
csv初使用COMMON-CSV**官网**
项目中批量插入数据库使用的mybatis,在做数据导入的时候,觉得是mybatis的批量导入有问题,后来发现其实是没问题的。当时没看时间花费多少,就找到了common-csv来做测试,在知乎上也有很多人说用csv配合load data会很快,后来测试之后,其实感觉是差不多的,我的数据量是1000左右,可能在1w以上的数据就会出现差异,load data 这个东西感觉是效率很高,使用起来也是很方便,在项目中引用common-csv的jar包即可
示例
mybatis xml 文件配置<insert id="createOrdersByCsv" > LOAD DATA LOCAL INFILE #{filePath} INTO TABLE wo_work_order_test FIELDS TERMINATED BY ',' lines terminated by '\r\n'(ID, ENTERPRISE_ID, ...
Future Callable初使用
线程优化 昨天看到一同事的导出代码,单线程,看着就觉得还是差了点东西。然后就想进行一番改造,然后就找来了future和callable。 ** Callable接口类似于Runnable,从名字就可以看出来了,但是Runnable不会返回结果,并且无法抛出返回结果的异常,而Callable功能更强大一些,被线程执行后,可以返回值,这个返回值可以被Future拿到,也就是说,Future可以拿到异步执行任务的返回值。 **
简单来说就是一个是执行任务,然后它带着任务执行的结果回来。
简单看下demoimport java.util.ArrayList;import java.util.concurrent.Callable;import java.util.concurrent.ExecutionException;import java.util.concurrent.ExecutorService;import java.util.concurrent.Executors;import java.util.concurrent.Future;public clas ...
next部署git页面资源加载404
资源404
引用一下其他博主的话,这位博主不要生气哦,资源共享嘛
** 最近github page更新了,GitHub Pages 过滤掉了 source/vendors 目录的访问,所以next主题下的source下的vendors目录不能够被访问到,所以就出现了本地hexo s能够正常访问,但是deploy到github就是一片空白,按f12,可以看到大量来自source/vendors的css和js提示404 **
这两天推送git的时候发现,推送hexo成功,但是在github上面打开就报了一堆404找不到资源的情况。所有的配置都已经配置好的,跟以前没有什么区别,然后自己再反复找下是不是hexo的问题,然后就重新装了hexo。发现问题还是存在,于是就度娘了一下,原来最近真的有这样情况,然后next的博主也在git上面解决了这个bug,详情请看资源加载失败,原来是有个jekyll的东西改了,导致不能加载这些资源。
看到比较快的解决方法,亲测成功,因为我把博主的master的git删掉了,我在想当初我怎么这么手贱啊。同时我也改了挺多博主的东西,免得冲突了。听说博主更新 ...
Elasticsearch 笔记
初学elasticsearchelasticsearch,简称ES。**百度百科**
ElasticSearch是一个基于Lucene的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口。Elasticsearch是用Java开发的,并作为Apache许可条款下的开放源码发布,是当前流行的企业级搜索引擎。设计用于云计算中,能够达到实时搜索,稳定,可靠,快速,安装使用方便。我们建立一个网站或应用程序,并要添加搜索功能,令我们受打击的是:搜索工作是很难的。我们希望我们的搜索解决方案要快,我们希望有一个零配置和一个完全免费的搜索模式,我们希望能够简单地使用JSON通过HTTP的索引数据,我们希望我们的搜索服务器始终可用,我们希望能够一台开始并扩展到数百,我们要实时搜索,我们要简单的多租户,我们希望建立一> 个云的解决方案。Elasticsearch旨在解决所有这些问题和更多的问题。
elasticsearch 安装
安装elasticsearch简单,容易。我使用的es是2.4.1版本的,elasticsearch下载。另外Java也是必须的,最 ...
maven国内镜像
修改setting.xml setting.xml是工程所用的maven的setting.xml,可存在maven安装目录的conf下,或者在.m2下面。修改 .m2 文件夹中的setting.xml 中的 元素。添加子元素如下:
<mirrors> <id>alimaven</id> <name>aliyun maven</name> <url>http://maven.aliyun.com/nexus/content/groups/public/</url> <mirrorOf>central</mirrorOf> </mirror> </mirrors>
阿里云的镜像,亲测很快。以后都用它了。