白话Elasticsearch07- 深度探秘搜索技术之基于term+bool实现的multiword搜索底层剖析
生活随笔
收集整理的這篇文章主要介紹了
白话Elasticsearch07- 深度探秘搜索技术之基于term+bool实现的multiword搜索底层剖析
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
文章目錄
- 概述
- 普通match轉(zhuǎn)換為term+should
- and match轉(zhuǎn)換為term+must
- minimum_should_match如何轉(zhuǎn)換
概述
繼續(xù)跟中華石杉老師學(xué)習(xí)ES,第七篇
課程地址: https://www.roncoo.com/view/55
普通match轉(zhuǎn)換為term+should
上一篇博文中我們 使用了 搜索標(biāo)題中包含java或elasticsearch的blog 這個(gè)例子
GET /forum/article/_search {"query": {"match": {"title": "java elasticsearch"}} }我們通過分詞器查看,可以知道 es是把 java和elasticsearch放到了倒排索引中,
那es是如何查詢的呢? 我們通過 profile
GET /forum/article/_search {"profile": "true", "query": {"match": {"title": "java elasticsearch"}} }或者kibana提供的
使用諸如上面的match query進(jìn)行多值搜索的時(shí)候,es會(huì)在底層自動(dòng)將這個(gè)match query轉(zhuǎn)換為bool的語(yǔ)法 . bool should,指定多個(gè)搜索詞,同時(shí)使用term query
等同于
GET /forum/_search {"query": {"bool": {"should": [{"term": {"title": "java"}},{"term": {"title": "elasticsearch"}}]}} }and match轉(zhuǎn)換為term+must
搜索標(biāo)題中包含java和elasticsearch的blog 中的
GET /forum/_search {"query": {"match": {"title": {"query": "java elasticsearch","operator": "and"}}} }and match轉(zhuǎn)換為term+must
等同于
GET /forum/_search {"query": {"bool": {"must": [{"term": {"title": "java"}},{"term": {"title": "elasticsearch"}}]}} }minimum_should_match如何轉(zhuǎn)換
搜索包含java,elasticsearch,spark,hadoop,4個(gè)關(guān)鍵字中,至少3個(gè)的blog
GET /forum/_search {"query": {"match": {"title": {"query": "java elasticsearch hadoop spark","minimum_should_match": 3}}} }等同于
GET /forum/_search {"query": {"bool": {"should": [{"term": {"title": "java"}},{"term": {"title": "elasticsearch"}},{"term": {"title": "hadoop"}},{"term": {"title": "spark"}}],"minimum_should_match": 3}} }總結(jié)
以上是生活随笔為你收集整理的白话Elasticsearch07- 深度探秘搜索技术之基于term+bool实现的multiword搜索底层剖析的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 白话Elasticsearch06- 深
- 下一篇: 白话Elasticsearch08-深度