2011-07-11 71 views
2

相似的特徵所以我有兩列「標題」和「URL」的表。該行去,因爲這樣的:刪除出現在所有行

Title        url 

    Galago - Wikipedia     http://en.wikipedia.org/wiki/Galago   
    Characteristics - Wikipedia   http://en.wikipedia.org/wiki/Galago 
    Classification - Wikipedia   http://en.wikipedia.org/wiki/Galago 
    Myst- Gamestop      http://www.gamestop.com/ds/games/myst/69424 
    Plot- Gamestop      http://www.gamestop.com/ds/games/myst/69424 

我的問題是,我如何會刪除共性存在於從特定URL中的所有行(刪除 - 從前三維基百科,和 - 與其他2 Gamestop的)。這只是一個小例子....我有很多其他行具有相同的模式(它們具有共同的字符,單詞,從某個url中重新出現在所有行中)。我想補充一點,我存儲這些值從javacript陣列

+0

是這樣做的不存儲額外的數據,以節省磁盤空間的意圖是什麼? – mockobject

+0

不,它是使搜索更容易 – re1man

+0

和自動完成更精緻 – re1man

回答

0

我認爲你想保留大部分自動化解決方案,這種風險刪除數據。發生在多行上的單詞或短語不一定是多餘的。想到一些潛在的,但仍然不可靠的方法。只有當你在尋找整個單詞時,這些纔會起作用。

  1. 將所有標題讀入數組,並通過將每個標題拆分爲單詞來創建單詞表數組。然後,您可以確定每個單詞的頻率,並使用該信息從標題中刪除不需要的單詞。如果你有很多數據,這種方法可能會使用很多內存...

  2. 解析每個URL,提取主機名,使用句點(。)分隔它作爲分隔符,然後搜索並刪除標題中出現這些字符串。您可以選擇創建要忽略的字符串白名單,如www,com,co,uk,net,org等。如果在域名中找到不需要的單詞(如您的示例中所示),則此方法可能有效。

+0

謝謝,我會考慮的! – re1man

1

如果您的所有字符串都在爲標題欄上面顯示的格式,我認爲最好的辦法可能是將之前的正則表達式適用於標題到數據庫表中。該正則表達式可以捕獲「 - 」字符前面的所有數據,並丟棄「 - 」後面的「重複」數據。

信息上的PHP字符串的正則表達式可以在這裏找到:http://php.net/manual/en/function.preg-match.php

0

你可以從標準化的URL信息到另一個表...所以喜歡拿網址列,並使其url_id並創建一個URL表格它提供了一個URL列和一個標題列。標題就像維基百科或Gamestop等等。然後在原始表格中存儲只有標題不包括網址標題的標題。

也許不會與你正在試圖做的查詢工作得很好,但在這樣你很可能通過URL,URL標題或標題還是蠻容易的任意組合進行搜索。