最近項(xiàng)目中使用了ElasticSearch, 在使用基本的查詢功能的時(shí)候,遇到些頭疼的事情,有時(shí)候數(shù)據(jù)明明存在,用term查詢就是查不到,用match才可以。有時(shí)候缺可以,差點(diǎn)就把es整成玄學(xué)了。后來(lái)閱讀各種博客后,我想我明白其中的原理了。
1. term&match
- term: 精確查詢,對(duì)查詢的值不分詞,直接進(jìn)倒排索引去匹配。
- match; 模糊查詢,對(duì)查詢的值分詞,對(duì)分詞的結(jié)果一一進(jìn)入倒排索引去匹配
2. text&keyword
- text: 在寫(xiě)入時(shí),對(duì)寫(xiě)入的值進(jìn)行分詞,然后一一插入到倒排索引。
- keyword: 在寫(xiě)入時(shí),將整個(gè)值插入到倒排索引中,不進(jìn)行分詞。
3. 實(shí)例分析
- 寫(xiě)入值為 hello world,
- 查詢值為 hello world
| 查詢類型 | 寫(xiě)入類型 | 結(jié)果 |
|---|---|---|
| term | text | 無(wú) |
| term | keyword | 有 |
| match | text | 有 |
| match | keyword | 有 |
原文地址: https://blog.csdn.net/qq_38043440/article/details/101678677