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