白话Elasticsearch62-进阶篇之Highlighting高亮显示
生活随笔
收集整理的這篇文章主要介紹了
白话Elasticsearch62-进阶篇之Highlighting高亮显示
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
文章目錄
- 概述
- 官網
- 示例
- 查詢單個字段
- 查詢多個字段
- 三種highlight介紹 (unified, plain, fvh)
- unified
- plain
- fvh
- 設置高亮html標簽,默認是標簽
- 高亮片段fragment的設置
概述
繼續跟中華石杉老師學習ES,第62篇
課程地址: https://www.roncoo.com/view/55
官網
7.3版本Highlighting: 戳這里
6.4版本: 戳這里
示例
為了演示這個功能,我們新建個索引
#新建artisan_indexPUT /artisan_index {"mappings": {"artisan_type": {"properties": {"title": {"type": "text","analyzer": "ik_max_word"},"content": {"type": "text","analyzer": "ik_max_word"}}}} }#寫入2條數據PUT /artisan_index/artisan_type/1 {"title": "小工匠學習ES","content": "小工匠的學習之旅!" }PUT /artisan_index/artisan_type/2 {"title": "我是小工匠","content": "歡迎大家" }查詢單個字段
使用highlight查詢
GET /artisan_index/artisan_type/_search {"query": {"match": {"title": "小工匠"}},"highlight": {"fields": {"title": {}}} }返回
<em></em> 會變成紅色,所以說你的指定的field中,如果包含了那個搜索詞的話,就會在那個field的文本中,對搜索詞進行紅色的高亮顯示。
查詢多個字段
第二個例子: 查詢多個字段
GET /blog_website/blogs/_search {"query": {"bool": {"should": [{"match": {"title": "博客"}},{"match": {"content": "博客"}}]}},"highlight": {"fields": {"title": {},"content": {}}} }highlight中的field,必須跟query中的field一一對齊的
三種highlight介紹 (unified, plain, fvh)
unified
plain
fvh
總結:
- 一般情況下,用plain highlight也就足夠了,不需要做其他額外的設置
- 如果對高亮的性能要求很高,可以嘗試啟用posting highlight
- 如果field的值特別大,超過了1M,那么可以用fast vector highlight
設置高亮html標簽,默認是標簽
GET /artisan_index/artisan_type/_search {"query": {"match": {"content": "小工匠"}},"highlight": {"pre_tags": ["<tag1>"],"post_tags": ["</tag1>"], "fields": {"content": {"type": "plain"}}} }高亮片段fragment的設置
GET /_search {"query" : {"match": { "user": "kimchy" }},"highlight" : {"fields" : {"content" : {"fragment_size" : 150, "number_of_fragments" : 3, "no_match_size": 150 }}} }- fragment_size:舉個例子 你一個Field的值,比如有長度是1萬,但是你不可能在頁面上顯示這么。。設置要顯示出來的fragment文本判斷的長度,默認是100
- number_of_fragments:你可能你的高亮的fragment文本片段有多個片段,你可以指定就顯示幾個片段
總結
以上是生活随笔為你收集整理的白话Elasticsearch62-进阶篇之Highlighting高亮显示的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 白话Elasticsearch61-进阶
- 下一篇: 白话Elasticsearch63-生产