1. query string基礎語法
1GET /test_index/test_type/_search?q=test_field:test
2GET /test_index/test_type/_search?q=+test_field:test 必須包含,其實跟上面一樣
3GET /test_index/test_type/_search?q=-test_field:test 不包含
複製程式碼
一個是掌握q=field
:search content
的語法,還有一個是掌握+和-的含義
2. _all metadata
在搜尋的時候,如果沒有指定搜尋的欄位,就預設搜尋 _all field
, 其中包含了所有 field 的值。
es中的_all後設資料,在建立索引的時候,我們插入一條document,它裡面包含了多個field,此時,es會自動將多個field的值,全部用字串的方式串聯起來,變成一個長的字串,作為_all field的值,同時建立索引。
例如:
1{
2 "name": "jack",
3 "age": 26,
4 "email": "jack@sina.com",
5 "address": "guangzhou"
6}
複製程式碼
"jack 26 jack@sina.com guangzhou",作為這一條document的_all field的值,同時進行分詞後建立對應的倒排索引.
在生產環境下不使用。
3. query string 的分詞
- query string必須以和index建立時相同的analyzer進行分詞
- query string對exact value和full text的區別對待