2010-10-25 60 views
2

我有一個ASP.NET應用程序接受用戶評論和他們在SQL數據庫中。我想確保我清除了任何「調皮」字樣,這樣我就可以保持我的應用的可敬。問題是我發現這些詞有很多。 ;>有效地從用戶中刪除頑皮的詞評論

我的問題是,什麼是最有效的方式來做這個處理?我是否應該在SQL中有一個表並編寫一個存儲過程來完成這項工作?我應該使用c#和正則表達式在Web服務器的內存中執行嗎?還有其他選擇嗎?有沒有其他人成功地進行過這種文本掃描?如果y,什麼工作?

回答

9

這是一個徒勞的任務。如果人們想發誓,那麼他們會開始輸入像f ucksh*t這樣的東西。

沒有有效的節制的替代品。還有什麼是可能離開你clbuttic錯誤頁面上

我記得有一個報價從什麼地方有關技術解決社會問題,但我不能源它現在

+0

你讓Gareth好點。我太天真了,以爲人們會輸入漂亮的正則表達式友善調皮的話...感謝網站的鏈接,讓我笑了起來。 – will 2010-10-25 23:29:53

0

有一些事情需要考慮:

  • 你希望能夠從該黑名單後添加或刪除的話嗎?如果是這樣,則只有在顯示消息之前執行此操作纔有意義,但存儲原始消息。
  • 您是否希望稍後獲得該郵件的副本(例如,出於法律原因或客戶支持)?然後在數據庫中保持消息不變也是有意義的。

所以我會保留在數據庫中的消息,並解析它之前只渲染它。對我來說,它看起來像最有效的方式做到這將是要麼:

  1. 保持黑名單在數據庫索引列(小寫),並通過過濾它
  2. 存儲過程返回評論在一些數據結構中保持黑名單小寫,以允許在中間層的內存中有效訪問(例如字典)。

在這兩種情況下,您只需運行每個評論並對其進行過濾即可。後一種方法更容易實現,但意味着你必須在內存中保留一個列表,當你有一個非常大的黑名單時停止有意義。

(我居然看到在使用正則表達式是沒有意義的。)

+0

然後,我也同意Gareth忽略這個方面並且適度放鬆。 – steinar 2010-10-25 23:31:16

2

Scunthorpe Problem

每個人都應該是阻遏***版嘗試在代碼中解決這個問題。