成语大全网 - 汉语词典 - es(4)—查询条件match和term

es(4)—查询条件match和term

而文档在倒排索引中存储的是什么值呢?可以通过下面uri进行分析:

有上图可知,倒排索引存储的值实际上是 es 和 book ,而不是 es book 。

注意: 因为是默认被standard analyzer分词器分词,大写字母全部转为了小写字母,并存入了倒排索引以供搜索。term是确切查询, 所以传入的条件要和倒排索引保持一致。

需要注意的是,倒排索引中存储的值为大写的 ES BOOK 。

使用term查询时,查询条件不会进行分词。但是 text 类型的数据,在倒排索引中实际存储的是分词的数据。

term条件的区分大小写,而实际上,text数据经过默认的standard analyzer分词器分词,大写字母全部转为了小写字母,并存入了倒排索引以供搜索。

故不推荐使用term去查询text类型。

term去查询keyword的数据,均不会进行分词,但是需要注意大小写

match查询text类型时,其本质的操作为or。

可等效为:

并且match匹配时,底层分词器会将条件转换为小写,故和text的倒排索引的大小写保持一致。即不区分大小写。

上文说到,match默认使用or的操作。那么如何替换为and操作?

查询到的数据即包含JAVA 也要包含BOOK。

但是非精确匹配。

导入数据

再次执行时,依旧可以查询到 JAVA AND NET BOOK 数据。

and操作,是要求倒排索引中即要包含 java 也需要包含 book 。

match查询keyword操作时,等效term

当match查询text类型时,在底层将会被转换为term操作。

将被转换为: