Elasticsearch 查询全部数据
背景
有时我们希望查询 固定条件下的全部数据
ES 默认的策略是返回10条数据
虽然可以 setSize()
但是默认上限是 10 万还是 100 万条数据,这不够优雅,一般不这么干
TransportClient 方法
1 | TimeValue keepAlive = TimeValue.timeValueMinutes(30); |
有时我们希望查询 固定条件下的全部数据
ES 默认的策略是返回10条数据
虽然可以 setSize()
但是默认上限是 10 万还是 100 万条数据,这不够优雅,一般不这么干
1 | TimeValue keepAlive = TimeValue.timeValueMinutes(30); |
因项目需求,需要一个自动提示的功能,想到之前有 jquery 的 jQuery-Autocomplete 插件,于是就直接拿来用了,
直接在github 上找到了一个 starts 最多的项目 jQuery-Autocomplete
看了下插件的 API 可配置项很多,有一个 appendTo 配置,是我想要的,于是就决定使用这个差价
直接把 插件下载下来 放到项目中去,直接 $(…).autocomplete is not a function
……
项目中我写的只是其中的一个模块,页面的代码是纯 html 页面写的,然后通过 panel 引入 html 代码片段
很奇怪,为什么插件无法加载
于是就就把官方的demo跑了一下,没有问题
又怀疑是 jQuery 版本的问题,
官方的demo jQuery 版本是 1.8.2,项目使用的是1.11.1,
于是又在官方的 demo 下替换jQuery的版本
发现使用没有问题
又怀疑是插件的版本过高,于是再 GitHub 的 release 上找了个2014年发布的1.2.2的版本,这已经是能找到的最低版本了
发现还是不行
这就奇怪了,我之前也引入过其他的插件,正常使用都没有问题,偏偏使用这个有问题
于是想着插件的引入方式有问题,打开一看,jQuery插件的引入方式都是大同小异的
本人前端不擅长,也不知道怎么改…..
于是又在 GitHub上找了其他的插件,有的能用,但是没有我想要的功能….
一直这么来来回回的测试,已经晚上 10 点了…..
从吃完晚饭一直研究到现在还是没有解决
心里好气啊!!!!!
空调一关,直接回家了!!!!
今天早上来又差了点资料,找到了个不太靠谱,但又想尝试了下的方法
TypeError: $(…).autocomplete is not a function
试一下吧,没想到真的可以
发一张对比图
这一段时间 GitHub 在国内的访问又出问题,代码提交不上去,需要在 Git 上走代理了
1 | git config --global http.proxy 'socks5://127.0.0.1:1080' |
取消
1 | git config --global --unset http.proxy |
但是有时候我们并不需要所有的 git 仓库都走代理,可以去掉上述的命令中的 --global
,然后到你需要走代理的那个 git 仓库下执行命令,或者添加配置:
1 | [https] |
其实,也就是上述命令执行后添加的配置.配置后就可以愉快的 clone push 了.
Windows 和 MacOS 下的 ss 全局代理很方便,点击切换下就可以了,而 Ubuntu 下需要多点操作:
安装 pip
1 | $ sudo pip install genpac |
创建 user-rules.txt 文件
1 | mkdir vpnPAC |
生成 autoproxy.pac 文件
1 | genpac --format=pac --pac-proxy="SOCKS5 127.0.0.1:1080" --output="autoproxy2.pac" --gfwlist-url="https://raw.githubusercontent.com/gfwlist/gfwlist/master/gfwlist.txt" --user-rule-from="user-rules.txt" |
github 上的 gfwlist.txt 文件可能读取不到,多试几次
昨天和别人吃饭谈起了家里宽带的问题,办了多少兆的宽带,网速能有多少等云云,对方是个小白,和他说了半天,但是有些深层次的原理我也弄不清楚,后来我上网科普了一下,现在整理如下
宽带速率是指技术上所能达到的理论最高信息传送比特率,一般是上传和下载的速度,速率越高,上传和下载的越快。用户申请的宽带业务速率指技术上所能达到的最大理论速率值。但用户上网时还受到用户电脑软硬件的配置、所浏览网站的地址、终端网站带宽等情况的影响。因此,用户上网时的速率通常低于理论速率值。
理论上,2M,即2Mb/s,宽带理论速率是 256KB/S。实际速率大约为103–200KB/S。(其原因是受用户计算机性能、网络设备质量、资源使用情况、网络高峰期、网站服务能力、线路衰耗、信号衰减等多因素的影响而造成的)。4M,即4Mb/s宽带理论速率是 512KB/S 实际速率大约为200—440KB/S。
在计算机科学中,bit是表示信息的最小单位,叫做二进制位;一般用0和1表示。Byte叫做字节,由8个位(8bit)组成一个字节(1Byte),用于表示计算机中的一个字符。bit与Byte之间可以进行换算,其换算关系为:1Byte=8bit(或简写为:1B=8b);在实际应用中一般用简称,即1bit简写为1b(注意是小写英文字母b),1Byte简写为1B(注意是大写英文字母B)。
在计算机网络或者是网络运营商中,一般,宽带速率的单位用bps(或b/s)表示;bps表示比特每秒即表示每秒钟传输多少位信息,是bit per second的缩写。在实际所说的1M带宽的意思是1Mbps(是兆比特每秒Mbps不是兆字节每秒MBps)。
换算公式:1B=8b 1B/s=8b/s(或1Bps=8bps)
规范提示:实际书写规范中B应表示Byte(字节),b应表示bit(比特),但在平时的实际书写中有的把bit和Byte都混写为b ,如把Mb/s和MB/s都混写为Mb/s,导致人们在实际计算中因单位的混淆而出错。
实例: 在我们实际上网应用中,下载软件时常常看到诸如下载速度显示为128KBps(KB/s),103KB/s等等宽带速率大小字样,因为ISP提供的线路带宽使用的单位是比特,而一般下载软件显示的是字节(1字节=8比特),所以要通过换算,才能得实际值。然而我们可以按照换算公式换算一下:
1Mb/s = 1024Kb/s = 128×8(Kb/s) = 128KB/s
即 1Mb/s = 128KB/s
常见宽带 | 理论最高速率(Mbps) | 理论最高速率(KB/S) | 常见下载速率(供参考) |
---|---|---|---|
1M | 1 Mbps | 128 KB/S | 77~128 KB/S |
2M | 2 Mbps | 256 KB/S | 154~256 KB/S |
3M | 3 Mbps | 384 KB/S | 231~384 KB/S |
4M | 4 Mbps | 512 KB/S | 307~512 KB/S |
6M | 6 Mbps | 620 KB/S | 462~620 KB/S |
8M | 8 Mbps | 1024 KB/S | 614~1024 KB/S |
10M | 10 Mbps | 1280 KB/S | 768~1280 KB/S |
12M | 12 Mbps | 1536 KB/S | 922~1536 KB/S |
20M | 20 Mbps | 2560 KB/S | 1536~2560 KB/S |
30M | 30 Mbps | 3840 KB/S | 2560~3840 KB/S |
50M | 50 Mbps | 6400 KB/S | 3840~6400 KB/S |
100M | 100 Mbps | 12800 KB/S | 7680~12800 KB/S |
最近维护了一个比较老的项目,操作数据库直接用的 Spring 的 JdbcTemplate,有很多地方我们传入的参数都是不确定的
简单的还好,复杂的 sql 语句在代码里用字符串拼接起来简直不能忍,
又不想对原来的项目有什么大的改动,就想这能不能在现在的基础上优化一下
还好有 NamedParameterJdbcTemplate
具名参数: SQL 按名称(以冒号开头)而不是按位置进行指定. 具名参数更易于维护, 也提升了可读性. 具名参数由框架类在运行时用占位符取代
具名参数只在 NamedParameterJdbcTemplate 中得到支持。NamedParameterJdbcTemplate可以使用全部jdbcTemplate方法
org.springframework.jdbc.core.namedparam.NamedParameterJdbcTemplate
1 | /** |
1 | <bean id="namedParameterJdbcTemplate" |
namedParameterJdbcTemplate 参数传入有 2 中方法:
Map<String, ?> paramMap
我们熟知的 map
SqlParameterSource paramSource
该接口默认的实现有三个类:
MapSqlParameterSource
实现非常简单,只是封装了java.util.Map;
当 Map<String, ?> paramMap 用吧 或者 new MapSqlParameterSource(paramMap) 参数为 map
BeanPropertySqlParameterSource
封装了一个JavaBean对象,通过JavaBean对象属性来决定命名参数的值。
new BeanPropertySqlParameterSource(dto) new 出一个 BeanPropertySqlParameterSource 对象,构造方法传入实体类即可,绝大部分情况下我们都使用这种方式
EmptySqlParameterSource
一个空的SqlParameterSource ,常用来占位使用
没用过
返回 Map
返回 RowMapper 包装好的实体类,该类有2中实现
SingleColumnRowMapper ,sql结果为一个单列的数据,如List
BeanPropertyRowMapper, sql结果匹配到对象 List< XxxVO> , XxxVO
1 | KnowledgeInfo info = new KnowledgeInfo(); |
注意: sql 语句中的参数使用 :参数名
进行占位
number长度 | Java类型 |
---|---|
1~4 | Short |
5~9 | Integer |
10~18 | Long |
18+ | BigDecimal |
须指定number类型的大小。
今天连接远程服务器发生了以下的错误
1 | ssh_exchange_identification: read: Connection reset |
我想应该是我当前的 IP 地址被 DenyHosts 加入了黑名单
本来想只要将当前的 ip 地址在黑名单中去掉就可以了
没想到事实并不是如此,为此还查资料花费了一点功夫
现记录下来
systemctl stop denyhosts.service
vim /etc/hosts.deny
/var/lib/denyhosts
1 | -rw-r--r-- 1 root root 39 2月 16 2015 allowed-hosts |
注意: 这些文件里有很多被拉入黑名单的IP地址,vim编辑的时候可以在命令行模式下使用
/ip地址
来查找, n 和 N 上下翻动,再在命令行模式下:noh
取消查找
自从入了 MBP 后就被其默认的字体显示效果吸引了,在编辑器里写代码更是舒服,于是想着把 Mac 下的字体也移植到 Ubuntu 下,但是显示效果并不是特别的好,尤其是粗体字的显示
左侧使用前,右侧使用后
/usr/share/fonts
fc-cache -fv
生成字体缓存我的 1080P 分辨率,我的配置如下:
看到一篇关于 Ubuntu 字体渲染问题的文章: 修复 Ubuntu 中文字体渲染 https://i-meto.com/fix-chinese-font-display/