驗(yàn)證查詢
查詢語句可以變得非常復(fù)雜,特別是與不同的分析器和字段映射相結(jié)合后,就會(huì)有些難度。
validate?API 可以驗(yàn)證一條查詢語句是否合法。

以上請(qǐng)求的返回值告訴我們這條語句是非法的:

理解錯(cuò)誤信息
想知道語句非法的具體錯(cuò)誤信息,需要加上?explain?參數(shù):

<1>?explain?參數(shù)可以提供語句錯(cuò)誤的更多詳情。
很顯然,我們把 query 語句的?match?與字段名位置弄反了:

理解查詢語句
如果是合法語句的話,使用?explain?參數(shù)可以返回一個(gè)帶有查詢語句的可閱讀描述, 可以幫助了解查詢語句在ES中是如何執(zhí)行的:

explanation?會(huì)為每一個(gè)索引返回一段描述,因?yàn)槊總€(gè)索引會(huì)有不同的映射關(guān)系和分析器:

從返回的?explanation?你會(huì)看到?match?是如何為查詢字符串?"really powerful"?進(jìn)行查詢的, 首先,它被拆分成兩個(gè)獨(dú)立的詞分別在?tweet?字段中進(jìn)行查詢。
而且,在索引us中這兩個(gè)詞為"really"和"powerful",在索引gb中被拆分成"really"?和?"power"。 這是因?yàn)槲覀冊(cè)谒饕齡b中使用了english分析器。