Elasticsearch——query string

Dictator丶發表於2019-02-18

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 的分詞

  1. query string必須以和index建立時相同的analyzer進行分詞
  2. query string對exact value和full text的區別對待

相關文章