elasticsearch之十七springboot測(cè)試文檔高亮

個(gè)人專題目錄](méi)(http://www.reibang.com/p/140e2a59db2c)


1. elasticsearch高亮(highlight search)

1.1 高亮介紹

許多應(yīng)用都傾向于在每個(gè)搜索結(jié)果中 高亮 顯示搜索的關(guān)鍵詞莺掠,比如字體的加粗,改變字體的顏色等.以便讓用戶知道為何該文檔符合查詢條件喇伯。在 Elasticsearch 中檢索出高亮片段也很容易。

高亮顯示需要一個(gè)字段的實(shí)際內(nèi)容作郭。 如果該字段沒(méi)有被存儲(chǔ)(映射mapping沒(méi)有將存儲(chǔ)設(shè)置為 true)叁温,則加載實(shí)際的_source祷膳,并從_source中提取相關(guān)的字段客叉。

在 Elasticsearch 中檢索出高亮片段很容易丘喻。

再次執(zhí)行前面的查詢脯宿,并增加一個(gè)新的 highlight 參數(shù):

POST /book-index/_search
{
  "from": 0,
  "size": 100,
  "query": {
    "match": {
      "title": {
        "query": "三星",
        "operator": "OR",
        "prefix_length": 0,
        "max_expansions": 50,
        "fuzzy_transpositions": true,
        "lenient": false,
        "zero_terms_query": "NONE",
        "auto_generate_synonyms_phrase_query": true,
        "boost": 1
      }
    }
  },
  "highlight": {
    "pre_tags": [
      "<b><font color=red>"
    ],
    "post_tags": [
      "</font></b>"
    ],
    "require_field_match": false,
    "fields": {
      "title": {}
    }
  }
}

當(dāng)執(zhí)行該查詢時(shí),返回結(jié)果與之前一樣泉粉,與此同時(shí)結(jié)果中還多了一個(gè)叫做 highlight 的部分连霉。這個(gè)部分包含了 about 屬性匹配的文本片段,并以 HTML 標(biāo)簽 <em></em> 封裝:

可以看到嗡靡,除了從ES中得到標(biāo)準(zhǔn)信息以外跺撼,還有一個(gè)新命名的highlight的部分。這里ES使用<em>的這HTML標(biāo)簽作為highlight部分的開(kāi)始讨彼,使用<//em>標(biāo)識(shí)其結(jié)束歉井。

1.2 高亮使用

highlight參數(shù):

下面的參數(shù)可以改變返回的結(jié)果。即可以為單獨(dú)的字段設(shè)置不同的參數(shù)哈误,也可以作為 highlight 的屬性統(tǒng)一定義哩至。

number_of_fragments
fragment 是指一段連續(xù)的文字躏嚎。返回結(jié)果最多可以包含幾段不連續(xù)的文字。默認(rèn)是5憨募。

fragment_size
某字段的值紧索,長(zhǎng)度是1萬(wàn),但是我們一般不會(huì)在頁(yè)面展示這么長(zhǎng)菜谣,可能只是展示一部分珠漂。設(shè)置要顯示出來(lái)的fragment文本判斷的長(zhǎng)度,默認(rèn)是100

noMatchSize

搜索出來(lái)的這個(gè)文檔這個(gè)字段已經(jīng)顯示出高亮的情況尾膊,可是其它字段并沒(méi)有任何顯示媳危,設(shè)置這個(gè)屬性可以顯示出來(lái)。

pre_tags
標(biāo)記 highlight 的開(kāi)始標(biāo)簽冈敛。例如上面的<em>待笑。

post_tags
標(biāo)記 highlight 的結(jié)束標(biāo)簽。例如上面的</em>抓谴。

@Override
public void highLightQuery(String indexName, String field, String keyword, Integer fragmentSize, Integer numOfFragments,Integer noMatchSize) throws Exception {
    //條件
    MatchQueryBuilder queryBuilder = new MatchQueryBuilder(field, keyword);
    // 高亮設(shè)置
    HighlightBuilder highlightBuilder = new HighlightBuilder();
    highlightBuilder.requireFieldMatch(false).field(field)
            .preTags("<b><font color=red>")
            .postTags("</font></b>");
    highlightBuilder.fragmentSize(fragmentSize);
    highlightBuilder.numOfFragments(numOfFragments);
    highlightBuilder.noMatchSize(noMatchSize);
    baseQuery.builder(indexName, queryBuilder, highlightBuilder);
}
@Test
public void testHighLightQuery() throws Exception {
    //20 2 150
    highLightQuery.highLightQuery(Constants.INDEX_NAME, "title", "三星", null, null, null);
}
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末暮蹂,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子癌压,更是在濱河造成了極大的恐慌仰泻,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,941評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件滩届,死亡現(xiàn)場(chǎng)離奇詭異集侯,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)帜消,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,397評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門(mén)棠枉,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人泡挺,你說(shuō)我怎么就攤上這事辈讶。” “怎么了娄猫?”我有些...
    開(kāi)封第一講書(shū)人閱讀 165,345評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵荞估,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我稚新,道長(zhǎng)勘伺,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,851評(píng)論 1 295
  • 正文 為了忘掉前任褂删,我火速辦了婚禮飞醉,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己缅帘,他們只是感情好轴术,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,868評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著钦无,像睡著了一般逗栽。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上失暂,一...
    開(kāi)封第一講書(shū)人閱讀 51,688評(píng)論 1 305
  • 那天彼宠,我揣著相機(jī)與錄音,去河邊找鬼弟塞。 笑死凭峡,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的决记。 我是一名探鬼主播摧冀,決...
    沈念sama閱讀 40,414評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼系宫!你這毒婦竟也來(lái)了索昂?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 39,319評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤扩借,失蹤者是張志新(化名)和其女友劉穎椒惨,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體往枷,經(jīng)...
    沈念sama閱讀 45,775評(píng)論 1 315
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,945評(píng)論 3 336
  • 正文 我和宋清朗相戀三年凄杯,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了错洁。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,096評(píng)論 1 350
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡戒突,死狀恐怖屯碴,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情膊存,我是刑警寧澤导而,帶...
    沈念sama閱讀 35,789評(píng)論 5 346
  • 正文 年R本政府宣布,位于F島的核電站隔崎,受9級(jí)特大地震影響今艺,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜爵卒,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,437評(píng)論 3 331
  • 文/蒙蒙 一虚缎、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧钓株,春花似錦实牡、人聲如沸陌僵。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,993評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)碗短。三九已至,卻和暖如春题涨,著一層夾襖步出監(jiān)牢的瞬間偎谁,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,107評(píng)論 1 271
  • 我被黑心中介騙來(lái)泰國(guó)打工携栋, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留搭盾,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,308評(píng)論 3 372
  • 正文 我出身青樓婉支,卻偏偏與公主長(zhǎng)得像鸯隅,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子向挖,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,037評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容