2012-02-17 107 views
2

你認爲這是個好主意嗎?使用sqlite進行搜索索引?

就像存儲sqlite數據庫中真實數據庫的關鍵字一樣,還有對象ID。所以當你搜索時,用sqlite來獲取你找到的對象的ID,然後用這些ID查詢真實的數據庫。從MySQL數據庫

例子中的物體:

ID slug  title  content 
_____________________________________________________________________________ 
5 bla-bla Bla Bla  I know what you did last summer 

這將得到索引的源碼,如:

ID keywords 
_____________________________________________________________________________ 
5 know, summer, last, what 

也許

keyword  objects 
    _____________________ 
    know  5, 6 
    summer  5 
    lst   5, 7, 10 
    ... 

,但你會得到一個龐大的數據庫,考慮到英語詞彙,可能帶有約15000個條目

回答

1

數據庫的思想是它能夠快速高效地進行查詢操作。

SQLite另一方面是開發目的的完美工具,因爲您不必設置數據庫實例。但是,有了它,就會出現某些方面,例如無法高效地處理許多併發連接。

因此,我認爲建議的方法並不是最好的,因爲SQLite將無法處理許多查詢,因此打敗了數據庫的整個目的。

只是爲了維護一個能夠處理所有查詢的高性能分貝可能會好很多。而且通常有噸的方法可以優化數據庫如MySQL和PostgreSQL等

編輯

只是一個想法。也許將字符串分解成單詞並將它們當作關鍵字並不是最好的方法。問題在於,如果在系統中的某個地方使用了某個關鍵字,搜索就會返回,但不會考慮關鍵字來自哪裏的上下文和優先級。我對搜索知之甚少,但擁有某種排名系統似乎是有益的。

2

,但你會得到一個龐大的數據庫,可能跟〜15000項

15000條記錄是MySQL一塊蛋糕和大多數其他RDBMS。 應該所做的是在MyIsam表中設置您的文本,以便您可以利用全文索引和searching