驗證查詢
查詢語句可以變得非常復(fù)雜疚俱,特別是與不同的分析器和字段映射相結(jié)合后预愤,就會有些難度媚朦。
validate?API 可以驗證一條查詢語句是否合法。
以上請求的返回值告訴我們這條語句是非法的:
理解錯誤信息
想知道語句非法的具體錯誤信息啰脚,需要加上?explain?參數(shù):
<1>?explain?參數(shù)可以提供語句錯誤的更多詳情。
很顯然实夹,我們把 query 語句的?match?與字段名位置弄反了:
理解查詢語句
如果是合法語句的話橄浓,使用?explain?參數(shù)可以返回一個帶有查詢語句的可閱讀描述, 可以幫助了解查詢語句在ES中是如何執(zhí)行的:
explanation?會為每一個索引返回一段描述亮航,因為每個索引會有不同的映射關(guān)系和分析器:
從返回的?explanation?你會看到?match?是如何為查詢字符串?"really powerful"?進行查詢的荸实, 首先,它被拆分成兩個獨立的詞分別在?tweet?字段中進行查詢缴淋。
而且准给,在索引us中這兩個詞為"really"和"powerful",在索引gb中被拆分成"really"?和?"power"重抖。 這是因為我們在索引gb中使用了english分析器露氮。