range -- 2




概述jdk 为我们提供了各式各样的容器,用来解决不同场景下的集合问题,但很多时候,我们需要维护的集合是连续跨度的范围,甚至是多段范围跨度的交集、并集,jdk 的容器就很难去支持了Guava 提供了 Range 类型,用来定义连续跨度的范围边界,并且这个连续跨度是一个可以比较的类型在此基础上,Guava 还提供了 RangeSet、RangeMap 实现多段范围边界集合的维护,在例如营业时间、允许的范围区间等问题的处理上,提供了前所未有的方便性一个 Range 对象定义了一段区间,对于一个区间,数学上有开区间和闭区间的区分,Range 的创建方法同样提供了对应的构造方式: 区间的创建Range 对象创建方法区间创建方法(a..b)open(C, C)[a..b]closed(C, C)[a..b)closedOpen(C, C)(a..b]openClosed(C, C)(a..+∞)greaterThan(C)[a..+∞)atLeast(C)(-∞..b)lessThan(C)(-∞..b]atMost(C)(-∞..+∞)all() 示例:Range.closed("left", "right"); //字典序
#java    #range    #集合    #guava   
过滤语句Elasticsearch 提供了丰富的查询过滤语句,对于查询过程中的各种场景非常有用 精确匹配 -- termsterm 用于精确匹配,常用于数字、日期、布尔值或 not_analyzed 字符串的匹配{ "term": { "age": 26 }} { "term": { "date": "2014-09-01" }} { "term": { "public": true }} { "term": { "tag": "full_text" }}  多精确匹配 -- termsterms 跟 term 有点类似,但 terms 允许指定多个匹配条件如果某个字段指定了多个值,那么文档需要一起去做匹配{ "terms": { "tag": [ "search", "full_text&
#读书笔记    #技术帖    #龙潭书斋    #query_string   



京ICP备15018585号