自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

不忘初心,好好沉淀

后端工程师,前端技术爱好者

翻译 [Elasticsearch] 索引管理 (四) - 动态映射

动态映射(Dynamic Mapping) 当ES在文档中碰到一个以前没见过的字段时,它会利用动态映射来决定该字段的类型,并自动地对该字段添加映射。 有时这正是需要的行为,但有时不是。你或许不知道在以后你的文档中会添加哪些字段,但是你想要它们能够被自动地索引。或许你只是想要忽略它们...

2014-11-29 11:11:53 21025 0

原创 [Java 并发] Java并发编程实践 思维导图 - 第六章 任务执行

根据《Java并发编程实践》一书整理的思维导图。希望能够有所帮助。 第一部分: 第二部分: 第三部分:

2014-11-28 09:08:29 4998 0

翻译 [Elasticsearch] 索引管理 (三) - 根对象(Root Object)

根对象(Root Object) 映射的最顶层被称为根对象。它包含了: 属性区域(Properties Section),列举了文档中包含的每个字段的映射信息。各种元数据(Metadata)字段,它们都以_开头,比如_type,_id,_source。控制用于新字段的动态探测(Dynamic ...

2014-11-26 10:06:08 9006 0

翻译 [Elasticsearch] 索引管理 (二)

自定义解析器(Custom Analyzers) 虽然ES本身已经提供了一些解析器,但是通过组合字符过滤器(Character Filter),分词器(Tokenizer)以及词条过滤器(Token Filter)来创建你自己的解析器才会显示出其威力。 在解析和解析器中,我们提到过解析器(An...

2014-11-25 10:52:18 10829 0

翻译 [Elasticsearch] 索引管理 (一)

索引管理 本文翻译自Elasticsearch官方指南的索引管理(Index Management)一章 我们已经了解了ES是如何在不需要任何复杂的计划和安装就能让我们很容易地开始开发一个新的应用的。但是,用不了多久你就会想要仔细调整索引和搜索过程来更好的适配你的用例。 几乎所有的定制都和索...

2014-11-24 10:04:05 35085 0

原创 [Java 并发] Java并发编程实践 思维导图 - 第五章 基础构建模块

根据《Java并发编程实践》一书整理的思维导图。希望能够有所帮助。

2014-11-23 10:01:20 4758 0

原创 Effective JavaScript Item 55 接受配置对象作为函数参数

接受配置对象作为函数参数 虽然保持函数接受的参数的顺序很重要,但是当函数能够接受的参数达到一定数量时,也会让用户很头疼: var alert = new Alert(100, 75, 300, 200, "Error", message, "...

2014-11-21 10:05:06 3750 0

原创 Effective JavaScript Item 54 将undefined视为"没有值"

将undefined视为"没有值" JavaScript中的undefined是一个特殊的值:当JavaScript没有提供具体的值时,它就会产生undefined。 比如: 未被赋值的变量的初始值就是undefined访问对象中不存在的属性会得到undefi...

2014-11-20 10:24:13 3804 0

翻译 [Elasticsearch] 分布式搜索

分布式搜索 本文翻译自Elasticsearch官方指南的Distributed Search Execution一章。 在继续之前,我们将绕一段路来谈谈在分布式环境中,搜索是如何执行的。和在分布式文档存储(Distributed Document Store)中讨论的基本CRUD操作相比,这...

2014-11-19 10:10:37 10892 2

翻译 [Elasticsearch] 分布式文档存储

本文翻译自Elasticsearch官方指南的distributed document store一章。 分布式文档存储 在上一章中,我们一直在介绍索引数据和获取数据的方法。但是我们省略了很多关于数据是如何在集群中被分布(Distributed)和获取(Fetched)的技术细节。这实际上是有...

2014-11-18 09:53:54 22620 3

翻译 [Elasticsearch] 集群的工作原理 - 第一部分

本文翻译自Elasticsearch官方指南的life inside a cluster一章。 ES就是为高可用和可扩展而生的。扩展可以通过购置性能更强的服务器(垂直扩展或者向上扩展,Vertical Scale/Scaling Up),亦或是通过购置更多的服务器(水平扩展或者向外扩展,Ho...

2014-11-17 10:25:25 32721 8

原创 [Java 并发] Java并发编程实践 思维导图 - 第四章 对象的组合

[Java 并发] Java并发编程实践 思维导图 - 第四章 对象的组合。 整理的思维导图,希望对大家有所帮助。

2014-11-16 09:53:12 4700 0

原创 Effective JavaScript Item 63 注意异步调用中可能会被忽略的异常

异常处理是异步编程的一个难点。在同步的代码中,异常能够很容易地通过try catch语句来完成: try { f(); g(); h(); } catch (e) { // handle any error that occurred... } 但是...

2014-11-16 09:22:36 3468 0

原创 Effective JavaScript Item 62 在异步调用中使用嵌套或者命名的回调函数

在一开始,理解异步程序的调用顺序会有些困难。比如,下面的程序中,starting会先被打印出来,然后才是finished: downloadAsync("file.txt", function(file) { console.log("finished&...

2014-11-15 09:40:31 3667 0

原创 Effective JavaScript Item 61 不要阻塞事件队列

JavaScript处理并发事件的机制是十分友好和强大的,它结合了事件队列(Event Queue)/事件循环并发(Event-loop Concurrency)和一套异步调用API。这因为这一点,JavaScript不仅可以在浏览器环境中运行,还可以在桌面应用和服务器应用中运行,如Node.js...

2014-11-14 12:32:12 3696 0

原创 [Java 并发] Java并发编程实践 思维导图 - 第三章 对象的共享

根据《Java并发编程实践》一书整理的思维导图。

2014-11-13 10:11:22 5448 1

原创 Effective JavaScript Item 51 在类数组对象上重用数组方法

Array.prototype对象上的标准方法被设计为也可以在其它对象上重用 - 即使不是继承自Array的对象。因此,在JavaScript中存折一些类数组对象(Array-like Objects)。 一个典型的例子是函数的arguments对象,在Item 22中对它进行过介绍。该对象...

2014-11-12 16:52:55 3390 0

原创 Effective JavaScript Item 50 优先使用遍历方法而非循环

优先使用遍历方法而非循环 在使用循环的时候,很容易违反DRY(Don't Repeat Yourself)原则。这是因为我们通常会选择复制粘贴的方法来避免手写一段段的循环语句。但是这样做回让代码中出现大量重复代码,开发人员也在没有意义地"重复造轮子"。更重要的是...

2014-11-12 10:06:18 3517 0

原创 Effective JavaScript Item 49 对于数组遍历,优先使用for循环,而不是for..in循环

本系列作为Effective JavaScript的读书笔记。   对于下面这段代码,能看出最后的平均数是多少吗? var scores = [98, 74, 85, 77, 93, 100, 89]; var total = 0; for (var score in scores)...

2014-11-11 09:49:38 3463 0

原创 Effective JavaScript Item 47 绝不要向Object.prototype中添加可列举的(Enumerable)属性

本系列作为Effective JavaScript的读书笔记。   如果你的代码中依赖于for..in循环来遍历Object类型中的属性的话,不要向Object.prototype中添加任何可列举的属性。   但是在对JavaScript执行环境进行增强的时候,往往都需要向Object.p...

2014-11-10 10:02:07 3880 0

原创 [Java 并发] Java并发编程实践 思维导图 - 第二章 线程安全性

根据《Java并发编程实践》一书整理的思维导图。

2014-11-09 11:25:08 5064 0

原创 [Java 并发] Java并发编程实践 思维导图 - 第一章 简介

根据《Java并发编程实践》一书

2014-11-08 10:08:27 4712 1

原创 [Java 8] (11) 使用Lambda的原则

要想更好的使用函数式编程,仅仅熟悉其语法结构是远远不够的。必须从思想和设计层面,去考虑它,去接纳它。这种编程范式和大多数开发人员所熟知的面向对象编程范式是不同的。 下面我们从以下几个方面来回顾一下使用函数式编程的要点: 多用声明式,少用命令式 要想更好的使用函数式编程,首先必须要...

2014-11-07 10:16:39 5453 1

原创 [Java 8] (10) 使用Lambda完成函数组合,Map-Reduce以及并行化

Java 8中同时存在面向对象编程(OOP)和函数式编程(FP, Functional Programming)这两种编程范式。实际上,这两种范式并不矛盾,只是着重点不同。在OOP中,着重于通过丰富的类型系统对需要解决的问题进行建模;而FP中则着重于通过高阶函数和Lambda表达式来完成计算。所以...

2014-11-06 10:09:44 32909 3

原创 [Hibernate Search] (6) 高级查询 - 过滤,投影和分面

高级查询 在介绍了更多的高级映射功能之后,是时候回顾一下之前介绍过的查询功能了,看看如何借助这些高级的映射功能来使用一些高级的查询功能。本文会通过以下几个方面进行介绍: 如何在不和数据库进行任何交互的前提下,借助Lucene的力量来动态的筛选结果如何通过使用基于投影(Projection)的查...

2014-11-05 10:13:43 12439 1

原创 [Hibernate Search] (5) 解析和条件索引

解析(Analysis) 当一个实体域被Lucene索引时,往往还会经历一个语法分析(Parsing)和转换(Conversion)的步骤,这些步骤被称为解析。在前文中,我们提到过Hibernate Search会默认对字符串类型的实体域进行分词,而这个分词过程就需要用到解析器(Analyz...

2014-11-04 09:52:35 7464 0

原创 [Hibernate Search] (4) 实体类型的高级映射功能

高级映射 前面介绍的可搜索的域基本上都是字符串类型,实际上可搜索的类型是非常丰富的。 本文会介绍以下几个方面的内容: Lucene对实体进行索引的过程借助Solr组件对这个过程的改进修改域的重要程度,从而让基于相关度的排序更加有意义动态决定是否对一个实体类型进行索引 桥接器...

2014-11-03 10:16:20 7783 0

原创 [Hibernate Search] (3) 基础查询

基础查询 目前我们只用到了基于关键字的查询,实际上Hibenrate Search DSL还提供了其它的查询方式,下面我们就来一探究竟。 映射API和查询API 对于映射API,我们可以通过使用Hibernate提供的注解来完成映射工作,同时我们也可以使用JPA提供的注解来完成。类似的,对于...

2014-11-02 11:30:37 13267 9

原创 [Hibernate Search] (2) 实体类型的映射

实体类型映射 在上一篇文章中,简要介绍了如何使用Hibernate Search来对一个实体进行全文搜索。 然而,在真实的应用中,实体与实体之间的关系也许更为复杂。为了对复杂实体进行搜索,就需要让底层的Lucene查询也能够理解这些关系。 下图反映了Database,Hibernate,Hi...

2014-11-01 09:31:23 8750 0

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