第九章 深入搜尋 結構化搜尋

2021-08-30 17:43:31 字數 2430 閱讀 6729

一.精確搜尋,多個精確搜尋

1.term查詢

term查詢可以用它處理數字(numbers)、布林值(booleans)、日期(dates)以及文字(text).

使用bulk建立檔案文件

post /my_store/products/_bulk}}

}}}term處理數字:在 elasticsearch 的查詢表示式(query dsl)中,使用term查詢會查詢我們指定的精確值。

constant_score: 查詢以非評分模式

get /my_store/products/_search}}

}}

term處理文字:在處理文字的時候,es的analyzeapi會把文字才分成乙個單詞,大寫的會變成小寫,特殊的字元會進行過濾

例如 :"xhdk-a-1293-#fj3" 會才分成  "xhdk", "a","1293","fj3"

可以使用 get //_analyze 語法進行查詢才分的情況,如下

get /my_store/_analyze

term的文字查詢

get /my_store/products/_search}}

}}2.多個精確搜尋

多個精確搜尋,只要在term後面加個s

get /my_store/products/_search}}

}}

二.組合過濾器

1.bool查詢

bool(布林)過濾器。 這是個 復合過濾器(compound filter) ,它可以接受多個其他過濾器作為引數,並將這些過濾器結合成各式各樣的布林(邏輯)組合。

bool過濾器由三部分組成:

}

must: 所有的語句都 必須(must) 匹配,與and等價。

must_not: 所有的語句都 不能(must not) 匹配,與not等價。

should: 至少有乙個語句要匹配,與or等價.

如此sql:

select product from products

where (price = 20 or productid = "xhdk-a-1293-#fj3")

and (price != 30)

elasticsearch中用bool表達此sql的語句 如下:

get /my_store/products/_search

},                  } 

],"must_not" :  }}

}}

}}

三.範圍查詢

range查詢

range查詢可同時提供包含(inclusive)和不包含(exclusive)這兩種範圍表示式,可供組合的選項如下:

如下事例:

get /my_store/products/_search}}

}}}四.處理null值

1.exists

exists:判斷不是null   與sql的 is not null 相同 

使用es的exists表示 tags is not null的判斷

select tags

from posts

where tags is not null

如下

get /my_index/posts/_search}}

}}

2.missing :判斷是null   與sql的 is  null 相同 

使用es的missing表示 tags is  null的判斷

select tags

from posts

where tags is null

如下:

get /my_index/posts/_search}}

}}

第九章(筆記)

轉移指令是可以修改ip,或同時修改cs和ip的指令 offset 是用於提取標號偏移位址的操作符 jmp在第2章裡說到時用於修改ip或同時修改cs和ip的轉移指令,這章裡單獨的jmp指令是乙個無條件的轉移指令 jmp short 標號 是實現段內短轉移 jmp near ptr 標號 是實現段內近轉...

第九章作業

班級 0401304 學號 2013211526 姓名 鄧小俊 2.身份驗證 依據使用者所提供的身份資訊,來進行登入驗證,可以再細分為使用者是否可以登入sql sever 使用者是否可以登入到指定的目標資料庫等。授權 已通過身份驗證的使用者,檢查其所被賦予的許可權,是否可以訪問或者執行目標的物件 3...

第九章 引用

引用擁有指標的所有功能,只是語法更加的簡單 1 引用就是別名,變數的另外乙個名字,變數和別名它們的位址是一樣的,操作別名就是操作變數 2 引用就是別名常量,一旦引用被初始化就不能再改變了 可以理解為指標常量,指向的值不能改變,能改變的只是它的該位址處的值 3 引用物件huamn mike human...