Ying

个人博客:http://smartsi.club/

[Redis]Redis指南一 数据类型

1. 字符串1.1 SET与GETSET key value GET keyRedis中的字符串是一个字节序列。Redis中的字符串是二进制安全的,这意味着它们的长度不由任何特殊的终止字符决定。因此,可以在一个字符串中存储高达512兆字节的任何内容。127.0.0.1:6379> SET U...

2017-05-31 21:23:38

阅读数:479

评论数:0

[ElasticSearch2.x]原理之分布式搜索

这个要比基本的创建-读取-更新-删除(CRUD)请求要难一些。CRUD操作是处理的单个文档。这就意味着我们明确的知道集群中的哪个分片存储我们想要的文档。一个 CRUD 操作只对单个文档进行处理,文档有唯一的组合,由 _index, _type, 和 路由值 (默认是该文档的 _id )组成。 这表...

2017-05-27 15:26:29

阅读数:356

评论数:0

[ElasticSearch]嵌套对象之嵌套类型

nested类型是一种特殊的对象object数据类型(specialised version of the object datatype ),允许对象数组彼此独立地进行索引和查询。1. 对象数组如何扁平化内部对象object字段的数组不能像我们所期望的那样工作。 Lucene没有内部对象的概念,...

2017-05-25 19:53:00

阅读数:5331

评论数:1

[ElasticSearch2.x]嵌套对象

考虑到在Elasticsearch中创建,删除和更新的单个文档是原子操作的,因此在相同文档中存储紧密相关的实体是有意义的。 例如,我们可以在一个文档中存储一个订单和其所有的订单线(order lines),或者我们可以通过传递一组评论来将一篇博客文章及其所有评论存储在一起:PUT /my_inde...

2017-05-25 11:24:29

阅读数:619

评论数:0

[ElasticSearch]分析之Analysis(分析)

分析(analysis)是将文本(如任何电子邮件的正文)转换为添加到倒排索引中进行搜索的tokens或terms的过程。 分析由分析器analyzer执行,分析器可以是内置分析器或者每个索引定制的自定义分析器。1. 索引时分析(Index time analysis)例如在索引时,内置的英文分析器...

2017-05-22 20:26:56

阅读数:1784

评论数:0

[ElasticSearch]Search之分页

之前的文章[ElasticSearch]搜索我们知道,我们的空搜索匹配到集群中的13个文档。 但是,命中数组中只有10个文档(文章只显示了2条数据,故意省略掉)。 我们如何查看其他文档呢?与SQL使用LIMIT关键字返回一个“页面”的结果数据相同,Elasticsearch接受from和size参...

2017-05-19 20:08:49

阅读数:3508

评论数:0

[ElasticSearch]搜索

1. 空搜索测试数据:https://gist.github.com/clintongormley/85792811.1 搜索最基本的搜索API是空搜索(empty search),它没有指定任何的查询条件,只返回集群索引中的所有文档:curl -XGET 'localhost:9200/_sea...

2017-05-19 19:30:11

阅读数:952

评论数:0

[ElasticSearch2.x]Filter之Cache

过滤器(Filter)的核心实际是采用一个bitset记录与过滤器匹配的文档。当Elasticsearch确定一个bitset可能会在将来被重用时,它将被直接缓存在内存中供以后使用。一旦缓存,这些bitset可以在使用相同查询的任何地方重复使用,而无需再次重新评估整个查询。这些缓存的bitset是...

2017-05-17 10:18:14

阅读数:799

评论数:0

[ElasticSearch2.x]Filter之Filter原理

1. FilterBuilders废弃org.elasticsearch.index.queries.FilterBuilders从ElasticSearch2.0开始已被删除,作为查询和过滤器组合的一部分。 这些过滤器现在可以在QueryBuilders中使用具有相同名称的方法。所有可以接受Fi...

2017-05-17 10:16:13

阅读数:1831

评论数:1

[ElasticSearch2.x]Queries vs Filters

1. 查询与过滤Elasticsearch 使用的查询语言(DSL) 拥有一套查询组件(queries),这些组件可以以无限组合的方式进行搭配(mixed and matched)。这套组件可以在以下两种上下文中使用:过滤上下文(filtering context)和查询上下文(query con...

2017-05-15 10:54:39

阅读数:606

评论数:0

[ElasticSearch2.x]副本分片

1. 副本分片到目前为止,我们只讨论了主分片,但是我们还有另一个工具:副本分片。 副本分片的主要目的是为了故障转移(failover),如深入集群生命周期所述:如果持有主分片的节点死亡,则将其副本提升为主分片的角色。在索引写入时,副本分片做着与主分片相同的工作。新文档首先被索引进主分片然后再同步到...

2017-05-10 09:58:56

阅读数:784

评论数:0

[Guava源码日报](11)BiMap

BiMap提供了一种新的集合类型,它提供了key和value的双向关联的数据结构。通常情况下,我们在使用Java的Map时,往往是通过key来查找value的,但是如果我们想根据value值查找key时,我们就需要额外编写一些代码来实现这个功能。BiMap为我们实现了这个功能。@Test ...

2017-05-02 13:29:36

阅读数:442

评论数:0

[Guava源码日报](10)Iterables

1. 简介Iterables类包含了一系列的静态方法,来操作或返回Iterable对象。除非另外说明,每一个Iterables方法都会有一个Iterators的方法。2. 源码分析2.1 构造器Iterables类只提供了私有构造器,因此只能通过静态方法来使用Iterables类。public f...

2017-05-02 13:25:14

阅读数:868

评论数:0

[Guava源码日报](9)Closeables

它的作用是收集可以关闭的资源并在合适的时候关闭它们。如下使用:Closer closer = Closer.create(); try { InputStream in = closer.register(openInputStream()); OutputStream out =...

2017-05-02 13:18:22

阅读数:517

评论数:0

[Guava源码日报](8)ImmutableCollection

不可变集合,顾名思义就是说集合是不可被修改的。集合的数据项是在创建的时候提供,并且在整个生命周期中都不可改变。1. UnmodifiableXXXJDK提供了UnmodifiableXXX(Collections.unmodifiable)用于生成不可变容器。不可变容器无法修改返回容器的内容。但是...

2017-05-02 13:13:08

阅读数:451

评论数:0

[Guava源码日报](7)Throwables分析

有时候,你会想把捕获到的异常再次抛出。这种情况通常发生在Error或RuntimeException被捕获的时候,你没想捕获它们,但是声明捕获Throwable和Exception的时候,也包括了了Error或RuntimeException。Guava提供了若干方法,来判断异常类型并且重新传播异...

2017-05-02 12:14:44

阅读数:494

评论数:0

[Guava源码分析](6)Objects分析

1. 私有构造器private Objects() {}2. 判断两个可能为null的对象是否相等public static boolean equal(@Nullable Object a, @Nullable Object b) { return a == b || (a !=...

2017-05-02 12:09:35

阅读数:698

评论数:0

[Guava源码日报](5)Optional分析

大多数情况下,开发人员使用null表明的是某种缺失情形:可能是已经有一个默认值,或没有值,或找不到值。例如,Map.get返回null就表示找不到给定键对应的值。Guava用Optional表示可能为null的T类型引用。一个Optional实例可能包含非null的引用(我们称之为引用存在),也可...

2017-05-02 11:58:41

阅读数:1053

评论数:2

[Guava源码日报](4)Preconditions

Preconditions是guava提供的用于进行代码校验的工具类,其中提供了许多重要的静态校验方法,用来简化我们工作或开发中对代码的校验或预 处理,能够确保代码符合我们的期望,并且能够在不符合校验条件的地方,准确的为我们显示出问题所在,接下来,我们就来学习使用Preconditions 进行代...

2017-05-02 11:48:19

阅读数:474

评论数:0

[Guava源码日报](3)Joiner分析

把任意的字符串,通过一些分隔符将它们连接起来是大多数程序员经常处理东西。以前的方式就是迭代,append等操作,使用Joiner可以更方便。我们先看一下以前的处理方式:// 通过分隔符将字符串链接在一起 public static String builder(ListString>...

2017-05-02 11:01:43

阅读数:527

评论数:0

提示
确定要删除当前文章?
取消 删除