日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 人文社科 > 生活经验 >内容正文

生活经验

如何设置SOLR的高亮 (highlight)?

發布時間:2023/11/27 生活经验 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 如何设置SOLR的高亮 (highlight)? 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
  • 打開SOLR的核心配置文件: solrconfig.xml

?

  • 找到 standard request handler

?

  • 寫入以下XML配置代碼:

?

?

[c-sharp]?view plaincopy
  1. <requestHandler?name="standard"?class="solr.SearchHandler"?default="true">??
  2. ??<!--?default?values?for?query?parameters?-->??
  3. ???<lst?name="defaults">??
  4. ?????<str?name="echoParams">explicit</str>??
  5. ??
  6. ??
  7. ??
  8. ????????<bool?name="hl">true</bool>??
  9. ??????<str?name="hl.fl">title</str>??
  10. ????????<int?name="hl.snippets">3</int>??
  11. ??
  12. ???????
  13. ?????<!--??
  14. ?????<int?name="rows">10</int>??
  15. ?????<str?name="fl">*</str>??
  16. ?????<str?name="version">2.1</str>??
  17. ??????-->??
  18. ???</lst>??
  19. </requestHandler>??

?

?

?

?

?

  • 其中hl.fl是要高亮顯示的字段,比如title,description等。
  • 重啟,大功告成
  • 隨便檢索一個詞,看看是不是結果后面多了一個尾巴?

????? 像這樣的:

?

?

[c-sharp]?view plaincopy
  1. <lst?name="highlighting">??
  2. ?<lst?name="SOLR1000">??
  3. ??<arr?name="features">??
  4. ??
  5. ????????<str>Standards?Based?Open?Interfaces?-?<em>XML</em>?and?HTTP</str>??
  6. ????????<str>Scalability?-?Efficient?Replication?to?other?<em>Solr</em>?Search?Servers</str>??
  7. ????????<str>Flexible?and?Adaptable?with?<em>XML</em>?configuration?and?Schema</str>??
  8. ??</arr>??
  9. ??
  10. ??<arr?name="sku">??
  11. ????????<str><em>SOLR</em>1000</str>??
  12. ??</arr>??
  13. ?</lst>??

?

?

?

?

  • 剛開始這種怪異的表現方式很不合我的胃口,為什么不把高亮標示直接標示到結果中呢? 另類~~~~
  • 有時間我會給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.

轉載于:https://www.cnblogs.com/lixiuran/p/3663570.html

總結

以上是生活随笔為你收集整理的如何设置SOLR的高亮 (highlight)?的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。