iT邦幫忙

0

關於網頁大量文字資料的儲存方式

你好,如果我有一個網頁上面的段落和字數很多,其中某一段如下:

第1 章 安裝Windows Server
1.1 Windows Server 的版本及特性 .
1.2 Windows Server 安裝條件
1.3 全新安裝Windows Server
1.4 Windows Server 的升級安裝
1.5 啟動Windows Server
1.6 Windows Server 的更新

第2 章 配置Windows Server 工作環境
2.1 配置Windows Server 工作介面
2.2 設定電腦名稱和所屬工作群組
2.3 配置虛擬記憶體
2.4 配置Windows Server 網路
2.5 其他配置內容

第3 章 Windows Server 的搜尋和組織
3.1 Windows Server 中的搜尋
3.2 Windows Server 的組織特性


以上每一個標題需要在網頁上透過 css 或是 html 標籤做一些字型和顏色的變化。

也需要做段落的編排。

但是以上的這一段文字存到資料庫後就是一堆連續的文字,如果取出放到網頁上的時候,
要做排版、文字變化就顯得很難下手。
例如:我要在 "1.6 Windows Server 的更新" 這一行字後面做斷行,資料是
整個欄位的一大篇資料從資料庫取出後,要如何精確的找到
"1.6 Windows Server 的更新"
再做斷行的動作? 或是再插入html標籤做斷行?
如果是先取出整大篇資料,再用程式去判斷插 html 標籤會變得很難維護。
另外,如果是用線上編輯器(例如:CKEdit ) 將編輯存入 資料庫欄位,如果
是一段文中的幾個字有顏色變化,就會在這幾個字的前後都插入html標籤,這樣
就會因為有標籤混在要查詢的字串中而無法達到全文檢索。
例如: "設定電腦名稱和所屬工作群組" 這一段字串中 “電腦名稱” 這四個字加了粗體
於是真正的文本資料變成了 “設定<b>電腦名稱</b>和所屬工作群組”
當要查詢 “設定電腦名稱” 的時候就無法查到了。

如果把這一段文字放某一個 html 檔裡,要用的時候再用動態網頁崁入的方式雖然可以達到
這個想法,但是如果要透過關鍵字搜尋的時候,就無法用資料庫的查詢方式去做查詢。

其實這在一般的網路書店、購物網站都應當有這樣的需求情境。

想知道像這樣需求該朝哪方面的思路去做?

感謝回覆。

這是個好問題
因為我沒遇過(也不會)
臉紅

我最快能想到的就是笨方法:資料一式兩份
一個欄位放有格式的內容,做為顯示之用
另一個欄位放沒有格式的純文字,做為建立索引之用

這應該是個蠻普遍的應用情境
看看有經驗的邦友如何解決

先做個記號
再回來看答案
忙
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中
0
qooqoo1127
iT邦新手 3 級 ‧ 2014-09-25 12:58:22
最佳解答

後台上稿 UI 使用 HTML Editor,文稿儲存成 html 或 xml,而非儲存在資料庫。
關鍵字搜尋使用如 Apache Solr 之類的 Search Engine Solution。

0
aeolus0829
iT邦研究生 4 級 ‧ 2014-09-25 09:04:29

不太清楚你想要做什麼,但是你提的問題基本上都有解法:
a. 撰寫文章時,嚴格按照 xml 的標準寫 (階層和元素定義清楚),而且要把版面設計的元素抽離 (字型大小、樣式、色彩)
b. 在 xml 裡指定 css 檔 (這部份我沒有實作過,推測可以像 html 一樣設定),並以元素的概念去設定版面
c. 將文章以字串的方式放進資料庫,然後在程式中(c#)再以讀取 xml 字串的函數處理,可以作到部份字串查詢 (SELECT * FROM ... WHERE LIKE '%AAA%')

0

或許可以在斷行的地方加上空白或特殊字元作判斷
或加上\n試試

我要發表回答

立即登入回答