1. 程式人生 > >solr 關鍵詞高亮

solr 關鍵詞高亮

solr在通過使用者輸入文字進行搜尋後,搜尋返回的結果文件一般都要對輸入關鍵詞進行高亮,方便使用者定位搜尋目標在文件中的位置。solr、elasticsearch都提供了關鍵詞高亮顯示的API和SDK。本文將簡要說明下solr中如何對搜尋結果進行關鍵詞高亮顯示。


高亮API

官方文件中定義了搜尋結果高亮的url引數名稱,主要的如下:

欄位 預設值 說明
hl false 是否開啟高亮顯示
hl.fl (df=) 要高亮的欄位
hl.q (q=) 要高亮的文字內容
hl.tag.pre <em> 要高亮的內容html標籤字首
hl.tag.post </em> 要高亮的內容html標籤字尾

測試示例:

http://localhost:8983/solr/gettingstarted/select?hl=on&q=apple&wt=json&hl.fl=manu&fl=id,name,manu,cat


高亮SDK

示例程式碼:

    // springboot + solr 測試結果高亮
    @Test
    public void testHighLight() throws IOException, SolrServerException {
        SolrQuery solrQuery = new SolrQuery();
        //查詢欄位
        solrQuery.setQuery("item_title:大衣馬夾");
        //solrQuery.setQuery("title:大衣馬夾");
        solrQuery.
set("q.op","AND"); solrQuery.setHighlight(true); //要高亮的欄位 //注意,要高亮的欄位型別最好與查詢的欄位型別一致 //例如:這裡item_title和item_title1欄位型別都是text_ik型別 solrQuery.addHighlightField("item_title1"); QueryResponse response = client.query("item_v2", solrQuery); System.out.println(response); }