2014-04-02 50 views
4

我的英語技能不好。所以請儘量理解我說的話。謝謝 !Lucene vs SQLite全文搜索Android應用程序

我想創建一個Android字典應用程序,但我沒有經歷過它。我做了一項研究,創建數據庫有兩種選擇:Lucene和SQLite全文搜索。因此,我創建了一個應用程序作爲一些教程。我發現FTS使用虛擬表來存儲數據庫,但問題是在第一次向虛擬表添加數據時(從文本文件大約10000行開始),應用程序凍結。搜索功能也需要很長時間(大約10秒)

然後,我找到一些關於Lucene的其他教程。 Lucene創建一個索引目錄進行搜索,但我不知道它有多快(與大數據)。任何人都可以就我的問題給我一些建議?

+0

什麼建議您尋找?他們之間的比較基於perfomance?此外,請指定您需要的搜索功能 – Mysterion

+0

@Mysterion您能否告訴我如何快速將數據加載到虛擬表中?另外,我想知道FTS索引數據是否適用於我們,或者我們是否需要自行索引數據(用於快速搜索)? –

+0

那麼,你確定Lucene運行在Android運行時? – Chiron

回答

2

我還沒有使用Lucene for FTS,但是您可以在SQLite中創建一個虛擬表。但是,SQLite中虛擬表的缺點是存儲空間幾乎翻了一番。 「我發現FTS使用虛擬表來存儲數據庫,但問題是在第一次向虛擬表添加數據時的應用凍結(從約10000行的文本文件中),搜索功能也需要很長時間(大約10秒)「 或者,您可以預先製作一個虛擬表格,並將sqlite數據庫添加到資產文件夾。

1

我建議你用fts4使用sqlite。 三大理由

  1. sqlite是android操作系統的功能。它在android中支持得非常好,許多人都使用它。
  2. 擴展性好,不僅支持fts功能,還支持其他功能。
  3. 如果你的索引建立時間是兩個很長的時間,只需在構建apk之前構建索引,然後將其放入資產。 10000行措辭大小db將不需要500ms從資產複製到/ data/data