1. ----------------------------------------------描述
我們經常使用搜尋引擎,比如在baidu 搜尋 spring ,會出現如下結果,結果中與關鍵字匹配的地方是紅色顯示與其他內容區別開來。
2.----------------------------------------------solr對高亮的支援
solr 預設已經配置了highlight 元件。通常我出只需要這樣請求,我還是從solr的管理頁面截圖吧!
3.----------------------------------------------引數說明
hl.fl: 用空格或逗號隔開的字段列表。要啟用某個欄位的highlight功能,就得保證該字段在schema中是stored。如果該引數未被給出,那麼就會高亮預設字段 standard handler會用df引數,dismax欄位用qf引數。你可以使用星號去方便的高亮所有字段。如果你使用了萬用字元,那麼要考慮啟用hl.requiredfieldmatch選項。hl.requirefieldmatch: 如果置為true,除非用hl.fl指定了該字段,查詢結果才會被高亮。它的預設值是false。
hl.usephrasehighlighter: 如果乙個查詢中含有短語(引號框起來的)那麼會保證一定要完全匹配短語的才會被高亮。
hl.highlightmultiterm :如果使用萬用字元和模糊搜尋,那麼會確保與萬用字元匹配的term會高亮。預設為false,同時hl.usephrasehighlighter要為true。
hl.fragsize: 返回的最大字元數。預設是100.如果為0,那麼該欄位不會被fragmented且整個欄位的值會被返回。
4.----------------------------------------------solrj對高亮的支援
public class highlighttest }
}
5.----------------------------------------------使用高亮時需要注意的地方1.對於multivalued=true的字段不要設計高亮顯示為什麼?因為solr對於這個字段裡面的多個值只會返回匹配高亮的那個值;如下:
從上圖中可以看出,remark欄位是設計成multivalued=true,而且它裡面有多個值,當我們查詢「remark=黑色」時,下面的高亮確只返回了當前查詢的值;這樣如果把這個高亮部分在頁面去展示就沒有任何意義了!
2.高亮時記得你的schema.xml檔案中要配主鍵(id)
為什麼?
因為solr對高亮的設計是,高亮部分跟結果集部分是分開返回的,如果沒有配主鍵,那麼高亮部分返回的結果是這樣的,如下圖所示,可以看出高亮部分沒有帶主鍵,這個時候,你就與上面的結果集匹配不上,那麼這樣的高亮就沒有任何意義,因為不能夠確定高亮的是哪條記錄。
3.對於如下應用場景的解決方案
例如:solr裡面有多個字段例如:title(標題)、context(內容),我想對這兩個欄位做檢索,但是通過利用如下去實現,
,最後通過context_title這個欄位做全文檢索(玩過solr都知道如上這種配置,context_title欄位就必須配置成multivalued=true),這個時候,對這樣的字段去高亮就會出現問題解決方案:直接查詢title,context讓這兩列返回高亮,然後在**裡面讓這兩列進行拼接,問題解決!
6.----------------------------------------------下面是我們為solr高亮設計介面模型,及其實現:
因為solr的結果集跟高亮是分開返回的,而且高亮是不會排序的,所以我把我的介面設計成,將高亮部分替換結果集的部分,如下圖所示
例如:在位址列請求
], "pageno":1,
"pagesize":10,
"totalrecords":2
}
大小: 18.8 kb
大小: 65.5 kb
大小: 8.8 kb
大小: 5.9 kb
大小: 11.2 kb
solr查詢列表並高亮顯示
private mapsearchlist map searchmap 1.3按品牌篩選 if equals searchmap.get brand 1.4按規格篩選 if searchmap.get spec null 1.5 篩選 if equals searchmap.get price if...
Solr安裝和配置
本人初學solr,為了配置solr我花了好多時間,這期間在網上找的很多關於solr配置的文章,按著他們的步驟配置了,但是很多都是不成功的。後來參考這個關於solr配置的文章中,這才配置正確,下面我把配置步驟寫下來 我用的solr和tomcat版本分別是apache solr 3.3.0和apache...
solr模糊與精確查詢 關鍵字顯示高亮
文件詳情介面 param docid return public resultgetbydocid pathvariable string docid,string source,string keywords,string type if page constants.default min pa...