solr 關鍵詞高亮
阿新 • • 發佈:2018-12-21
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標籤字尾 |
測試示例:
高亮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);
}