ElasticSearch    2018-09-01 00:39:52    0    0    0
shard是es中的名称,在lucene中叫index。以下皆是lucene中的索引运行原理。

每个segment都是一个inverted index倒排索引,index索引实际是由1到多个的segment组成,在index层次上,有个commit point提交点,其包含当前生效的所有的segment的名称。在查询时,lucene将按照segment从旧到新的顺序加载所有数据
ElasticSearch    2018-09-01 00:39:50    0    0    0
查询结构:
_search
     |---query
     |          |----match_all
     |          |----match
     |          |         |----field ({ "match": { "tweet": "About Search" }})
     |          |         
ElasticSearch    2018-09-01 00:39:47    0    0    0

聚合中有两个重要的概念:
Bucket : 桶,一类数据的集合。在传统数据概念上就是分组的意思。Bucket中可以再嵌套Bucket,不限深度。
Metric:指标,对一"bucket"中的数据进行统计(最小值、最大值、平均值、求和)
 
具体示例:
GET /cars/transactions/_search
{
"size" : 0,
"aggs":{
"po
java guava    2018-09-01 00:12:57    0    0    0

  应用场景

  • 你愿意花些内存来提高应用的速度
  • 你所要查询的数据需要花较多时间查询且需要经常查
  • 缓存数据所需要的内存不大于应用的内存

  数据加载

  From a CacheLoader

当缓存不存在时,通过调用loader的load方法去加载缓存
LoadingCache<Key, Graph> graph
java guava    2018-09-01 00:12:01    0    0    0
Multimaps.index(Iterable, Function) 索引、分组

ImmutableSet<String> digits = ImmutableSet.of("zero", "one", "two", "three", "four",
  "five", "six", "seven", "eight", "nine");
Function<String, Int
java guava    2018-09-01 00:09:34    0    0    0

Service代表一个对象的可运行状态和提供的启动和关闭方法。这是一个管理服务生命周期的框架对象

如何使用

Service的生命周期

Service提供的其他方法
  • addListener()用于监听服务状态变化
  • awaitRunning()阻塞直到服务的状态变为Running
  • awaitTerminated()阻塞直到服务的状态变为Termin
java guava    2018-09-01 00:08:12    0    0    0
不可变集合有以下好处:
  • 使用安全,不必担心被篡改
  • 线程安全
  • 能够节约时间和空间
  • 可以被作为常量使用


不可变集合类型和可变类型的对应关系
InterfaceJDK or Guava?Immutable Version
CollectionJDKImmutableCollection
ListJDKImmu
java guava    2018-09-01 00:07:52    0    0    0
Iterables大多数方法直接调的是Iterators的方法
该类主要使用场景是用于非Collection体系中的Iterable对象,以下的大部分方法在Collections工具类中都能找到相应的方法

MethodDescription
all(Iterable<T> iterable, Predicate<? super T> predicate)

java guava    2018-09-01 00:06:54    0    0    0

Guava ListenableFuture

与JDK自带的Future相比,ListenableFuture提供一个当执行完成时的异步回调方法,addListener(Runnable, Executor)。 用Future的地方最好能用ListenableFuture来代替

创建ListenableFuture的方法

  • 通过
java guava    2018-09-01 00:04:07    0    0    0

Joiner

Joiner joiner = Joiner.on("; ").skipNulls();
return joiner.join("Harry", null, "Ron", "Hermione");
Joiner 实例是不可变对象,其每一次的配置都是返回一个新的对象,这个能保证其线程安全

Splitter

闽ICP备19014535号-1