2012-10-11 68 views
1

我有一個關於Solr突出顯示的問題。

當您使用方法「setHighlightSimplePre」和「setHighlightSimplePost」並設置一些html標籤時,您會得到一個被html標籤包圍的高亮項。
例如,當你用「測試」查詢,並設置「<b>」作爲論據setHighlightSimplePre和「</B >」作爲setHighlightSimplePost的說法,你會得到「<b>測試</B > 「作爲字符串形式,只要至少一個字段具有」測試「的值。

這是一件事情。如果某個字段,如 「種皮<b> TESTB測試」 的值,你會得到 「種皮<b> TESTB <b>測試</B >」,這意味着你會看到 「種皮TESTB <b>測試」 如果你輸出結果爲html。

我該如何解決這個問題?也就是說,在這個例子中,我想輸出結果如「testA <b> testB test」。
有沒有什麼辦法在高亮之前識別html標籤?solr如何突出顯示識別html標籤?

+0

當然,在這個例子中,我可以通過使用y其他標籤的參數,但這不是一個基本的解決方案,因爲一個字段可能有其他類型的標籤。 – Max

回答

1

您可以在高亮之前從內容中去除html。

,或者您可以使用highliter類代替<b>,像

setHighlightSimplePre('<span class="hilite">'); 

setHighlightSimplePost('</span>'); 

然後覆蓋周圍的內容的樣式:

div.content b {font-weight: normal;} 

,並設置白標明文本的樣式:

.hilite {font-weight: bold; color: yellow;} 
+0

謝謝。我是初學者,所以對我來說還不完全清楚。 所以,你的意思是我基​​本上需要做的是使用標記並定義一個類,在該類中定義我想要突出顯示的內容? – Max

+0

但是我認爲問題依然存在。 如果某個字段的值爲「testA testB test」,則resulf將爲「testA testB test」,意思是這與我寫的相同。 – Max