Solr高亮的配置參數說明
高亮的配置
參數詳細說明:
hl.fl: 用空格或逗號隔開的字段列表。要啟用某個字段的highlight功能,就得保證該字段在schema中是stored。如果該參數未被給出,那么就會高亮默認字段 standard handler會用df參數,dismax字段用qf參數。你可以使用星號去方便的高亮所有字段。如果你使用了通配符,那么要考慮啟用 hl.requiredFieldMatch選項。
hl.requireFieldMatch:
如果置為true,除非該字段的查詢結果不為空才會被高亮。它的默認值是false,意味著它可能匹配某個字段卻高亮一個不同的字段。如果hl.fl使用了通配符,那么就要啟用該參數。盡管如此,如果你的查詢是all字段(可能是使用copy-field 指令),那么還是把它設為false,這樣搜索結果能表明哪個字段的查詢文本未被找到
hl.usePhraseHighlighter:
如果一個查詢中含有短語(引號框起來的)那么會保證一定要完全匹配短語的才會被高亮。
hl.highlightMultiTerm
如果使用通配符和模糊搜索,那么會確保與通配符匹配的term會高亮。默認為false,同時hl.usePhraseHighlighter要為true。
hl.snippets:
這是highlighted片段的最大數。默認值為1,也幾乎不會修改。如果某個特定的字段的該值被置為0(如f.allText.hl.snippets=0),這就表明該字段被禁用高亮了。你可能在hl.fl=*時會這么用。
hl.fragsize:
每個snippet返回的最大字符數。默認是100.如果為0,那么該字段不會被fragmented且整個字段的值會被返回。大字段時不會這么做。
hl.mergeContiguous:
如果被置為true,當snippet重疊時會merge起來。
hl.maxAnalyzedChars:
會搜索高亮的最大字符,默認值為51200,如果你想禁用,設為-1
hl.alternateField:
如果沒有生成snippet(沒有terms 匹配),那么使用另一個字段值作為返回。
hl.maxAlternateFieldLength:
如果hl.alternateField啟用,則有時需要制定alternateField的最大字符長度,默認0是即沒有限制。所以合理的值是應該為
hl.snippets * hl.fragsize這樣返回結果的大小就能保持一致。
hl.formatter:一個提供可替換的formatting算法的擴展點。默認值是simple,這是目前僅有的選項。顯然這不夠用,你可以看看 org.apache.solr.highlight.HtmlFormatter.java 和 solrconfig.xml中highlighting元素是如何配置的。
注意在不論原文中被高亮了什么值的情況下,如預先已存在的em tags,也不會被轉義,所以在有時會導致假的高亮。
hl.fragmenter:
這個是solr制定fragment算法的擴展點。gap是默認值。regex是另一種選項,這種選項指明highlight的邊界由一個正則表達式確定。這是一種非典型的高級選項。為了知道默認設置和fragmenters (and formatters)是如何配置的,可以看看solrconfig.xml中的highlight段。
regex 的fragmenter有如下選項:
hl.regex.pattern:正則表達式的pattern
hl.regex.slop:這是hl.fragsize能變化以適應正則表達式的因子。默認值是0.6,意思是如果hl.fragsize=100那么fragment的大小會從40-160.
</div>
原文地址:http://www.cnblogs.com/Laupaul/archive/2012/04/24/2467388.html
本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!