從上圖可以看出,倒排索引中存儲的值其實是es和book,而不是es book。
註意:因為默認情況下由標準分析器進行分段,所以所有大寫字母都被轉換為小寫字母並存儲在倒排索引中以供搜索。$ term是壹個精確查詢,所以傳入的條件應該與倒排索引壹致。
應該註意,存儲在倒排索引中的值是大寫的esbooks。
使用$ term查詢時,查詢條件不會被分段。但是,對於文本數據,倒排索引中實際存儲的是分段數據。
$ term條件區分大小寫,但實際上,默認的標準分析器對文本數據進行分段,所有大寫字母都轉換成小寫字母,並存儲在倒排索引中以供搜索。
因此,不建議使用$ term來查詢文本類型。
當$ term查詢關鍵字數據時,它不會分詞,但需要註意大小寫
當match查詢文本類型時,它的基本操作是or。
可以相當於:
當match匹配時,底部的斷字符會將條件轉換為小寫,因此它與文本的倒排索引的情況壹致。也就是說,它不區分大小寫。
如上所述,match默認使用or的操作。那麽如何用and運算代替呢?
查詢的數據包括JAVA和BOOK。
但不是完全匹配。
輸入數據
再次執行時,仍然可以查詢JAVA和NET BOOK數據。
and操作要求java和book都應該包含在倒排索引中。
匹配查詢關鍵字的操作,相當於$ term
當match查詢文本類型時,它將被轉換成底層的$ term操作。
將被轉換為: