1. 程式人生 > >ElasticSearch最佳入門實踐(三十六)query string search 語法以及 _all metadata 原理揭祕

ElasticSearch最佳入門實踐(三十六)query string search 語法以及 _all metadata 原理揭祕

1、query string基礎語法

GET /test_index/test_type/_search?q=test_field:test

GET /test_index/test_type/_search?q=+test_field:test

GET /test_index/test_type/_search?q=-test_field:test

一個是掌握q=field:search content的語法,還有一個是掌握+和-的含義
‘ + ’ 必須包含
‘ - ’ 必須不包含

2、_all metadata的原理和作用

在這裡插入圖片描述

直接可以搜尋所有的field,任意一個field包含指定的關鍵字就可以搜尋出來。我們在進行中搜索的時候,難道是對document中的每一個field都進行一次搜尋嗎?不是的

es中的_all元資料,在建立索引的時候,我們插入一條document,它裡面包含了多個field,此時,es會自動將多個field的值,全部用字串的方式串聯起來,變成一個長的字串,作為_all field的值,同時建立索引

後面如果在搜尋的時候,沒有對某個field指定搜尋,就預設搜尋_all field,其中是包含了所有field的值的

舉個例子

{
  "name": "jack",
  "age": 26,
  "email": "[email protected]",
  "address": "guamgzhou"
}

“jack 26 [email protected] guangzhou”,作為這一條document的_all field的值,同時進行分詞後建立對應的倒排索引。生產環境不使用