1
0
mirror of https://github.com/chai2010/advanced-go-programming-book.git synced 2025-05-29 08:12:21 +00:00

add diagram

This commit is contained in:
Xargin 2018-07-11 11:24:45 +08:00
parent 91ad20c6f7
commit 129e0dcbb8

View File

@ -22,7 +22,7 @@
elasticsearch 是开源分布式搜索引擎的霸主,其依赖于 Lucene 实现,在部署和运维方面做了很多优化。当今搭建一个分布式搜索引擎比起 Sphinx 的时代已经是容易很多很多了。只要简单配置客户端 ip 和端口就可以了。 elasticsearch 是开源分布式搜索引擎的霸主,其依赖于 Lucene 实现,在部署和运维方面做了很多优化。当今搭建一个分布式搜索引擎比起 Sphinx 的时代已经是容易很多很多了。只要简单配置客户端 ip 和端口就可以了。
虽然 es 是针对搜索场景来订制的,但如前文所言,实际应用中常常用 es 来作为 database 来使用,就是因为倒排列表的特性。我们可以用比较朴素的观点来理解倒排索引: 虽然 es 是针对搜索场景来订制的,但如前文所言,实际应用中常常用 es 来作为 database 来使用,就是因为倒排列表的特性。可以用比较朴素的观点来理解倒排索引:
``` ```
┌─────────────────┐ ┌─────────────┬─────────────┬─────────────┬─────────────┐ ┌─────────────────┐ ┌─────────────┬─────────────┬─────────────┬─────────────┐
@ -45,4 +45,16 @@ elasticsearch 是开源分布式搜索引擎的霸主,其依赖于 Lucene 实
└─────────────────┘ └─────────────┴─────────────┴─────────────┴─────────────┴─────────────┴─────────────┴─────────────┘ └─────────────────┘ └─────────────┴─────────────┴─────────────┴─────────────┴─────────────┴─────────────┴─────────────┘
``` ```
我们对 es 中的数据进行查询时,本质就是求多个排好序的序列求交集。 对 es 中的数据进行查询时,本质就是求多个排好序的序列求交集。非数值类型字段涉及到分词问题,大多数内部使用场景下,我们可以直接使用默认的 bi-gram 分词。什么是 bi-gram 分词呢:
```
今天天气很好
+-------+ +-------+ +------+ +-------+ +--------+
| 今天 | | 天天 | | 天气 | | 气很 | | 很好 |
+-------+ +-------+ +------+ +-------+ +--------+
```