要理解ElasticSearch,首先我们需要关注其很重要的三个部分:
本章就来详细介绍一下其中的Analysis和Mapping的过程。
总得来说ElasticSearch把数据分成了两个类型,一个是精确值,一个是全文本。
所谓的精确值就是它精确表示的值。比如说一个日期或者一个userID,就像2018-10-01
和2018进行精确值比较他们就是不一样的,再比如Apple和apple进行精确值比较也是不一样的。所以说精确值的查询和比较简单,一样就是一样,不一样就是不一样,比如下面这个查询:
而另外一个是全文本,它通常是以一种人类理解的语言来表示的,所以一般来说我们很难回答文本是否和查询是一样的或者匹配的,我们一般会说这个文本和查询的匹配程度是怎么样的,也就是说两者的相关度是多少。所以这个时候,我们不是进行精确的 比较,而是进行意图的识别:
那么ElasticSearch是如何做到这些的呢,它会首先分析文本,然后使用分析后的结果来创建inverted index,本章会详细介绍这些过程