• Elasticsearch服务器开发
21年品牌 40万+商家 超1.5亿件商品

Elasticsearch服务器开发

正版保障 假一赔十 可开发票

35.35 6.0折 59 全新

库存5件

上海黄浦
认证卖家担保交易快速发货售后保障

作者[波兰]库赛,[波兰]Marek Rogoziński

出版社人民邮电出版社

ISBN9787115380326

出版时间2014-09

装帧平装

开本其他

定价59元

货号8420523

上书时间2024-03-08

灵感书店

三年老店
已实名 已认证 进店 收藏店铺

   商品详情   

品相描述:全新
商品描述
作者简介
Rafa Ku
solr.pl网站联合创始人,现为Sematext集团顾问和软件工程师,专注于Apache Lucene、Solr、Elasticsearch和Hadoop等开源技术。Rafa?拥有超过12年的多领域软件经验,其中既包括银行软件又包括电子商务产品。Rafa?也是Apache Solr 3.1 Cookbook等技术图书的作者,并且一直是Lucene Eurocon、Berlin Buzzwords、ApacheCon和Lucene Revolution等会议的演讲嘉宾。
Marek Rogozińskisolr.pl网站联合创始人,拥有10年以上的软件架构师和顾问从业经验,专门研究基于Solr和Elasticsearch等开源搜索引擎的解决方案,以及Hadoop、HBase和Twitter Storm等用于大数据分析的软件。
蔡建斌
敏捷践行者,擅长Scrum/XP/Kanban等敏捷实践,现在英孚教育全球研发中心任Technical Lead,除了50%时间写代码以外,业务需求分析、前后端架构设计、性能调优、自动化测试、流程改进、发布运维、代码评审……无所不为,只为开发出更好的软件。爱好围棋,弈城4段5段之间跳跃。目标:工作上有所不为;爱好上添加一项健身。Email:caijianbin93@126.com。

目录
第1 章 Elasticsearch集群入门  1
1.1 全文检索  1
1.1.1 Lucene词汇表和架构  1
1.1.2 输入数据分析  3
1.1.3 评分和查询相关性  4
1.2 Elasticsearch基础  4
1.2.1 数据架构的主要概念  4
1.2.2 Elasticsearch主要概念  6
1.2.3 索引建立和搜索  6
1.3 安装并配置集群  8
1.3.1 安装Java  8
1.3.2 安装Elasticsearch  8
1.3.3 在Linux 上用二进制包安装Elasticsearch  9
1.3.4 目录布局  9
1.3.5 配置Elasticsearch  10
1.3.6 运行Elasticsearch  11
1.3.7 关掉Elasticsearch  12
1.3.8 Elasticsearch作为系统服务运行  13
1.4 用REST API操作数据  14
1.4.1 理解Elasticsearch的RESTfulAPI  14
1.4.2 在Elasticsearch中存储数据  15
1.4.3 新建文档  15
1.4.4 检索文档  16
1.4.5 更新文档  17
1.4.6 删除文档  18
1.4.7 版本控制  18
1.5 使用URI请求查询来搜索  20
1.5.1 示例数据  20
1.5.2 URI 请求  20
1.5.3 Lucene查询语法  26
1.6 小结  27
第2 章 索引  28
2.1 Elasticsearch索引  28
2.1.1 分片和副本  28
2.1.2 创建索引  29
2.2 映射配置  31
2.2.1 类型确定机制  31
2.2.2 索引结构映射  33
2.2.3 不同的相似度模型  43
2.2.4 信息格式  45
2.2.5 文档值  47
2.3 批量索引以提高索引速度  48
2.3.1 为批量索引准备数据  48
2.3.2 索引数据  48
2.3.3 更快的批量请求  50
2.4 用附加的内部信息扩展索引结构  50
2.4.1 标识符字段  50
2.4.2 _type字段  51
2.4.3 _all字段  52
2.4.4 _source字段  52
2.4.5 _index字段  53
2.4.6 _size字段  54
2.4.7 _timestamp字段  54
2.4.8 _ttl字段  55
2.5 段合并介绍  56
2.5.1 段合并  56
2.5.2 段合并的必要性  56
2.5.3 合并策略  57
2.5.4 合并调度器  57
2.5.5 合并因子  57
2.5.6 调节  58
2.6 路由介绍  58
2.6.1 默认索引过程  59
2.6.2 默认搜索过程  59
2.6.3 路由  61
2.6.4 路由参数  62
2.6.5 路由字段  62
2.7 小结  63
第3 章 搜索  64
3.1 查询Elasticsearch  64
3.1.1 示例数据  65
3.1.2 简单查询  66
3.1.3 分页和结果集大小  67
3.1.4 返回版本值  68
3.1.5 限制得分  69
3.1.6 选择需要返回的字段  69
3.1.7 使用脚本字段  71
3.2 理解查询过程  72
3.2.1 查询逻辑  72
3.2.2 搜索类型  73
3.2.3 搜索执行偏好  74
3.2.4 搜索分片API  75
3.3 基本查询  76
3.3.1 词条查询  76
3.3.2 多词条查询  77
3.3.3 match_all查询  77
3.3.4 常用词查询  78
3.3.5 match查询  79
3.3.6 multi_match查询  81
3.3.7 query_string查询  82
3.3.8 simple_query_string查询  84
3.3.9 标识符查询  84
3.3.10 前缀查询  84
3.3.11 fuzzy_like_this查询  85
3.3.12 fuzzy_like_this_field查询  86
3.3.13 fuzzy 查询  86
3.3.14 通配符查询  88
3.3.15 more_like_this查询  88
3.3.16 more_like_this_filed查询  89
3.3.17 范围查询  90
3.3.18 最大分查询  90
3.3.19 正则表达式查询  91
3.4 复合查询  91
3.4.1 布尔查询  92
3.4.2 加权查询  93
3.4.3 constant_score查询  94
3.4.4 索引查询  94
3.5 查询结果的过滤  95
3.5.1 使用过滤器  95
3.5.2 过滤器类型  96
3.5.3 过滤器的缓存  104
3.6 高亮显示  105
3.6.1 高亮显示入门  105
3.6.2 字段配置  106
3.6.3 深入底层  107
3.6.4 配置HTML标签  107
3.6.5 控制高亮片段  108
3.6.6 全局设置与局部设置  108
3.6.7 需要匹配  109
3.6.8 信息高亮器  111
3.7 验证查询  113
3.8 数据排序  115
3.8.1 默认排序  115
3.8.2 选择用于排序的字段  116
3.8.3 指定缺少字段的行为  118
3.8.4 动态条件  118
3.8.5 排序规则和国家特有字符  119
3.9 查询重写  119
3.9.1 重写过程示例  119
3.9.2 查询重写的属性  120
3.10 小结  121
第4 章 扩展索引结构  122
4.1 索引树形结构  122
4.1.1 数据结构  122
4.1.2 分析  123
4.2 索引非扁平数据  124
4.2.1 数据  124
4.2.2 对象  125
4.2.3 数组  125
4.2.4 映射  125
4.2.5 向Elasticsearch发送映射  127
4.2.6 动态还是非动态  127
4.3 使用嵌套对象  128
4.4 使用父子关系  131
4.4.1 索引结构和数据索引  131
4.4.2 查询  132
4.4.3 父子关系和过滤  134
4.4.4 性能考虑  134
4.5 使用更新API修改索引结构  135
4.5.1 映射  135
4.5.2 添加一个新字段  135
4.5.3 修改字段  136
4.6 小结  137
第5 章 更好的搜索  138
5.1 Apache Lucene评分简介  138
5.1.1 当文档被匹配时  138
5.1.2 默认评分公式  139
5.1.3 相关性的意义  140
5.2 Elasticsearch的脚本功能  140
5.2.1 脚本执行过程中可用的对象  140
5.2.2 MVEL  141
5.2.3 使用其他语言  141
5.2.4 使用自定义脚本库  142
5.3 搜索不同语言的内容  145
5.3.1 区分处理不同语言  145
5.3.2 多语言处理  145
5.3.3 检测文档的语言  146
5.3.4 示例文档  146
5.3.5 映射文件  147
5.3.6 查询  148
5.4 使用查询加权影响得分  150
5.4.1 加权  150
5.4.2 为查询添加加权  150
5.4.3 修改得分  153
5.5 索引时加权何时有意义  160
5.5.1 在输入数据中定义字段加权  160
5.5.2 在映射中定义加权  161
5.6 同义词  161
5.6.1 同义词过滤器  161
5.6.2 定义同义词规则  162
5.6.3 查询时或索引时的同义词扩展  164
5.7 理解解释信息  164
5.7.1 理解字段分析  164
5.7.2 解释查询  165
5.8 小结  167
第6 章 超越全文检索  168
6.1 聚合  168
6.1.1 一般查询结构  168
6.1.2 可用的聚合  170
6.1.3 聚合的嵌套  185
6.1.4 桶排序和嵌套聚合  187
6.1.5 全局和子集  187
6.2 切面  190
6.2.1 文档结构  190
6.2.2 返回的结果  190
6.2.3 使用查询进行切面计算  191
6.2.4 使用过滤器进行切面计算  192
6.2.5 terms切面  193
6.2.6 基于范围的切面  194
6.2.7 数值和日期直方图切面  196
6.2.8 数值型字段统计数据的计算  197
6.2.9 词条统计数据的计算  198
6.2.10 地理切面  199
6.2.11 切面结果的过滤  200
6.2.12 内存考虑  201
6.3 使用建议器  201
6.3.1 可用的建议器类型  201
6.3.2 包含建议器  201
6.3.3 term建议器  203
6.3.4 phrase建议器  204
6.3.5 completion建议器  205
6.4 预匹配器  209
6.4.1 示例索引  209
6.4.2 预匹配器的准备  209
6.4.3 深入  211
6.5 文件的处理  214
6.6 地理  217
6.6.1 为空间搜索准备映射  217
6.6.2 示例数据  218
6.6.3 示例查询  218
6.6.4 任意地理形状  222
6.7 卷动API  226
6.7.1 问题定义  226
6.7.2 作为解决方案的卷动  226
6.8 多词条过滤器  228
6.9 小结  232
第7 章 深入Elasticsearch集群  233
7.1 节点发现  233
7.1.1 发现的类型  233
7.1.2 主节点  234
7.1.3 设置集群名  235
7.1.4 节点的ping设置  236
7.2 时光之门与恢复模块  236
7.2.1 时光之门  236
7.2.2 恢复控制  237
7.3 为高查询和高索引吞吐量准备Elasticsearch集群  238
7.3.1 过滤器缓存  238
7.3.2 字段数据缓存和断路器  238
7.3.3 存储模块  239
7.3.4 索引缓冲和刷新率  240
7.3.5 线程池的配置  240
7.3.6 结合起来,一些通用建议  241
7.4 模板和动态模板  244
7.4.1 模板  244
7.4.2 动态模板  245
7.5 小结  246
第8 章 集群管理  248
8.1 Elasticsearch时光机  248
8.1.1 创建快照存储库  248
8.1.2 创建快照  249
8.1.3 还原快照  251
8.1.4 清理:删除旧的快照  252
8.2 监控集群的状态和健康度  252
8.2.1 集群健康度API  252
8.2.2 索引统计API  253
8.2.3 状态API  256
8.2.4 节点信息API  256
8.2.5 节点统计API  257
8.2.6 集群状态API  257
8.2.7 挂起任务API  258
8.2.8 索引段API  258
8.2.9 cat API  258
8.3 控制集群的再平衡  260
8.3.1 再平衡  260
8.3.2 集群的就绪  260
8.3.3 集群再平衡设置  260
8.4 控制分片和副本的分配  261
8.4.1 显式控制分配  262
8.4.2 集群范围的分配  264
8.4.3 每个节点上的分片和副本数量  265
8.4.4 手动移动分片和副本  265
8.5 预热  267
8.5.1 定义一个新的预热查询  267
8.5.2 获取定义的预热查询  268
8.5.3 删除一个预热查询  269
8.5.4 禁用预热功能  269
8.5.5 查询的选择  270
8.6 使用索引别名来简化你的日常工作  270
8.6.1 别名  271
8.6.2 创建别名  271
8.6.3 修改别名  271
8.6.4 合并命令  272
8.6.5 获取所有别名  272
8.6.6 移除别名  273
8.6.7 别名中的过滤  273
8.6.8 别名和路由  273
8.7 Elasticsearch插件  274
8.7.1 基础知识  274
8.7.2 安装插件  274
8.7.3 移除插件  275
8.8 更新设置API  275
8.9 小结  276

内容摘要
Elasticsearch集群入门

欢迎来到Elasticsearch的奇妙世界,它是优秀的全文检索和分析引擎。不管你对Elasticsearch和全文检索有没有经验,都不要紧。我们希望你可以通过这本书,学习并扩展Elasticsearch的知识。由于这本书也是为初学者准备的,我们决定先简单介绍一般性的全文检索概念,接着再简要概述Elasticsearch。
我们要做的第一件事就是安装Elasticsearch。与许多应用相同,你从安装和配置着手,并经常忘记这些步骤的重要性。我们会尽量引导你完成这些步骤,从而使你更容易记住要点。此外,我们将告诉你如何用最简单的方法来索引和检索数据,而不用陷入太多细节。读完本章,你将学到以下内容:
全文检索;
了解Apache Lucene;
文本分析;
学习Elasticsearch的基本概念;
安装和配置Elasticsearch;
使用Elasticsearch REST API来操纵数据;
使用基本的URI请求来搜索。
1.1 全文检索
在全文检索只为一小部分工程师所知的时代,我们大多数人使用SQL数据库来执行搜索操作。当然它至少在一定程度上没什么问题。然而,当你越钻越深,就会看到这种方法的局限,如缺乏扩展性、不够灵活、缺乏语言分析(当然SQL数据库的全文检索对此有所作为)等。于是Apache Lucene(http://lucene.apache.org)出现了,它的目标是提供一个全文检索的功能库。它非常快速,可扩展,并提供不同语言的分析能力。
1.1.1 Lucene词汇表和架构
深入介绍分析处理的细节之前,我们先介绍一下Apache Lucene的词汇表和整体架构,下面是这个库的基本概念。
文档(document):索引和搜索时使用的主要数据载体,包含一个或多个存有数据的字段。
字段(field):文档的一部分,包含名称和值两部分。
词(term):一个搜索单元,表示文本中的一个词。
标记(token):表示在字段文本中出现的词,由这个词的文本、开始和结束偏移量以及类型组成。
Apache Lucene将所有信息写到一个称为倒排索引(inverted index)的结构中。不同于关系型数据库中表的处理方式,倒排索引建立索引中词和文档之间的映射。你可以把倒排索引看成这样一种数据结构,其中的数据是面向词而不是面向文档的。来看一个简单的例子。我们有一些文档,只有它们的标题字段需要被索引,它们看起来如下所示:
Elasticsearch Server 1.0 (document 1);
Mastering Elasticsearch (document 2);
Apache Solr 4 Cookbook (document 3)。
那么,简化版的索引可以看成是这样的:
词计  数文  档
1.01<1>
41<3>
Apache1<3>
Cookbook1<3>
Elasticsearch2<1>,<2>
Mastering1<2>
Server1<1>
Solr1<3>
每一个词指向包含它的文档编号。这样就可以执行一种非常高效且快速的搜索,比如基于词的查询。此外,每个词有一个计数,告诉Lucene该词出现的频率。
当然,Lucene实际创建的索引要比这个复杂得多,也先进得多,它创建的额外文件包含了词向量(term vector)、文档值(doc value)等信息。然而,到现在为止,你需要知道的是数据怎么组织,而不是具体怎么存储。
每个索引分为多个“写一次,读多次”(write once and read many time)的段(segment)。建立索引时,一个段写入磁盘后就不能再更新。因此,被删除文档的信息存储在一个单独的文件中,但该段自身不被更新。
然而,多个段可以通过段合并(segments merge)合并在一起。当强制段合并或者Lucene决定合并时,这些小段就会由Lucene合并成更大的一些段。合并需要I/O。然而一些信息需要清除,因为在合并时,不再需要的信息将被删除(例如,被删除的文档)。除此之外,检索大段比检索存有相同数据的多个小段速度更快。这是因为在一般情况下,搜索只需将查询词与那些被编入索引的词相匹配。通过多个小段寻找和合并结果,显然会比让一个大段直接提供结果慢得多。
1.1.2 输入数据分析
当然,问题是,传入文档中的数据怎样转化成倒排索引,查询文本怎样变成可被搜索的词?这个数据转化的过程被称为分析。你可能希望某些字段经语言分析器处理,使得car和cars在索引中被视为同一个。另外,你可能希望另一些字段只用空格或者小写划分。
分析的工作由分析器完成,它由一个分词器(tokenizer)和零个或多个标记过滤器(token filter)组成,也可以有零个或多个字符映射器(character mapper)。
Lucene中的分词器把文本分割成多个标记,基本就是词加上一些额外信息,比如该词在原始文本中的位置和长度。分词器的处理结果称为标记流(token stream),它是一个接一个的标记,准备被过滤器处理。
除了分词器,Lucene分析器包含零个或多个标记过滤器,用来处理标记流中的标记。下面是一些过滤器的例子。
小写过滤器(lowercase filter):把所有的标记变成小写。
同义词过滤器(synonyms filter):基于基本的同义词规则,把一个标记换成另一个同义的标记。
多语言词干提取过滤器(multiple language stemming filter):减少标记(实际上是标记中的文本部分),得到词根或者基本形式,即词干。

   相关推荐   

—  没有更多了  —

以下为对购买帮助不大的评价

此功能需要访问孔网APP才能使用
暂时不用
打开孔网APP