Java分隔、合并大文件

今天网百度网盘上上传文件提示单个文件大小超限,让我升级VIP。作为一个有逼格的程序猿怎么可能被这点小事难倒呢。 import com.google.common.collect.Lists; import org.apache.commons.io.FilenameUtils; import java.io.File; import java.io.IOException; import java.io.RandomAccessFile; import java.util.List; /** * @author Gao Youbo * @since 2017-07-07 18:18 */ public class Files { public static void mai...

继续阅读 »

Go语言第二次实战应用

使用场景,由于历史原因造成redis计数不准确,需要将数据从数据库中count一次,然后同步到redis。 使用到的包 github.com/go-sql-driver/mysql github.com/go-redis/redis 具体实现 package main import ( "database/sql" "fmt" "strconv" "github.com/go-redis/redis" _ "github.com/go-sql-driver/mysql" ) // redis 客户端 var client *redis.Client var db *sql.DB const ( dbUrl = "username:pass...

继续阅读 »

Go语言的第一次实战应用

最近开始在熟悉Go语言,正巧产品同学需要分析一些数据,数据是放在ElasticSearch中的,打算使用Go语言来进行分析。 Go语言的优势就是对linux兼容很好,可以直接成linux上的可执行文件,无需其他任何环境的支持。 package main import ( "encoding/json" "log" "os" elastic "gopkg.in/olivere/elastic.v3" "strings" "fmt" "strconv" ) const ( url = "http://xxx.xxx.xxx.xxx:9200" ) type Message struct { Id int...

继续阅读 »

[Elasticsearch] 多字段搜索 (六) - 自定义_all字段,跨域查询及精确值字段

自定义_all字段 在元数据:_all字段中,我们解释了特殊的_all字段会将其它所有字段中的值作为一个大字符串进行索引。尽管将所有字段的值作为一个字段进行索引并不是非常灵活。如果有一个自定义的_all字段用来索引人名,另外一个自定义的_all字段用来索引地址就更好了。 ES通过字段映射中的copy_to参数向我们提供了这一功能: PUT /my_index { "mappings": { "person": { "properties": { "first_name": { "type": "string", "copy_t...

继续阅读 »

[Elasticsearch] 多字段搜索 (五) - 以字段为中心的查询

以字段为中心的查询(Field-centric Queries) 上述提到的三个问题都来源于most_fields是以字段为中心(Field-centric),而不是以词条为中心(Term-centric):它会查询最多匹配的字段(Most matching fields),而我们真正感兴趣的最匹配的词条(Most matching terms)。 NOTEbest_fields同样是以字段为中心的,因此它也存在相似的问题。 首先我们来看看为什么存在这些问题,以及如何解决它们。 问题1:在多个字段中匹配相同的单词 考虑一下most_fields查询是如何执行的:ES会为每个字段生成一个match查询,让后将它们包含在一个bool查询中。 我们可以将查询传入到validate-query AP...

继续阅读 »

[Elasticsearch] 多字段搜索 (四) - 跨字段实体搜索

跨字段实体搜索(Cross-fields Entity Search) 现在让我们看看一个常见的模式:跨字段实体搜索。类似person,product或者address这样的实体,它们的信息会分散到多个字段中。我们或许有一个person实体被索引如下: { "firstname": "Peter", "lastname": "Smith" } 而address实体则是像下面这样: { "street": "5 Poland Street", "city": "London", "country": "United Kingdom", "postcode": "W1V 3DG" } 这个例子也许很像在多查询字符串中描述的,但是...

继续阅读 »

[Elasticsearch] 多字段搜索 (三) - multi_match查询和多数字段

multi_match查询 multi_match查询提供了一个简便的方法用来对多个字段执行相同的查询。 NOTE 存在几种类型的multi_match查询,其中的3种正好和在"了解你的数据"一节中提到的几种类型相同:best_fields,most_fields以及cross_fields。 默认情况下,该查询以best_fields类型执行,它会为每个字段生成一个match查询,然后将这些查询包含在一个dis_max查询中。下面的dis_max查询: { "dis_max": { "queries": [ { "match": { "title": { "query": "Quick brown fox...

继续阅读 »

[Elasticsearch] 多字段搜索 (二) - 最佳字段查询及其调优

最佳字段(Best Fields) 假设我们有一个让用户搜索博客文章的网站,就像这两份文档一样: PUT /my_index/my_type/1 { "title": "Quick brown rabbits", "body": "Brown rabbits are commonly seen." } PUT /my_index/my_type/2 { "title": "Keeping pets healthy", "body": "My quick brown fox eats rabbits on a regular basis." } 用户输入了"Brown fox",然后按下了搜索键。我们无法预先知道用户搜索的词条会出现在博文的title或者b...

继续阅读 »

[Elasticsearch] 多字段搜索 (一) - 多个及单个查询字符串

多字段搜索(Multifield Search) 本文翻译自官方指南的Multifield Search一章。 查询很少是只拥有一个match查询子句的查询。我们经常需要对一个或者多个字段使用相同或者不同的查询字符串进行搜索,这意味着我们需要将多个查询子句和它们得到的相关度分值以一种有意义的方式进行合并。 也许我们正在寻找一本名为战争与和平的书,它的作者是Leo Tolstoy。也许我们正在使用“最少应该匹配(Minimum Should Match)”来搜索ES中的文档。另外我们也可能会寻找拥有名为John而姓为Smith的用户。 在本章中我们会讨论一些构建多字段搜索的工具,以及如何根据你的实际情况来决定使用哪种方案。 多个查询字符串(Multiple Query Strings) 处理字...

继续阅读 »

十八岁生日快乐

正是江南好风景,落花时节又逢君。十八岁生日老婆不在身边,两位久别好友陪我过。 一直陪我从十七岁的最后一晚上,陪我到十八岁的第一个凌晨。很高兴我们都从北京都转移到武汉了,以后大家又都在一起了。

继续阅读 »

maven打包可执行jar文件

需要打包有依赖第三方jar包的可执行jar会用到,他会帮你将所有的第三方的jar包都打到同一个jar中,这样就不用手动去设置classpath org.apache.maven.plugins maven-shade-plugin 1.2.1 ...

继续阅读 »

Vue相关开源项目库汇总

awesome-github-vue 是由OpenDigg整理并维护的Vue相关开源项目库集合。我们会定期同步OpenDigg上的项目到这里,也欢迎各位提交项目给我们。 如果收录的项目有错误,可以通过issue反馈给我们。这里的项目Star数不是实时更新的,一般是一周更新一次。 内容 UI组件 开发框架 实用库 服务端 辅助工具 应用实例 Demo示例 UI组件 element ★9689 - 饿了么出品的Vue2的web UI工具套件 Vux ★6927 - 基于Vue和WeUI的组件库 mint-ui ★4870 - Vue 2的移动UI元素 iview ★4782 - 基于 Vuejs 的开源 UI 组件库 Keen-UI ★2401 - 轻量级的基本UI组件合集 vue-materi...

继续阅读 »

一篇文章看懂when.js

最近在拾起很久都没做过的前端,总结下When.js的最常用的场景。 场景1 执行异步function a,当成功时执行function b,失败时执行function c,执行过程中需要回调function d来监控执行状态。 这个是最通用的用法,也是when.js中最长用到的,示例代码如下: function a () { var deferred = when.defer() for (var i = 0; i < 100; i++) { try { deferred.notify(i++); } catch (err) { deferred.reject(e) } } defer...

继续阅读 »