2013-03-18 222 views
1

我正在開發一個android應用程序,用戶需要將字符串/句子作爲關鍵字鍵入,並基於該輸入,應該從數據庫中檢索一些字符串。我正在尋找適合此目的的算法。我經歷了許多答案和許多算法,如tfidf和Boyer-Moore,但我仍然對選擇最有效的算法感到困惑。任何人都有一個建議? (目的是爲了獲取基於輸入的關鍵字一些字符串)關鍵字搜索算法

感謝

+0

如果問題不清楚,請告訴我! – 2013-03-18 09:07:30

回答

-1

我寫的自動完成搜索(由短語/ subphrases),你可以看到我的演示 性能和字典大小:

http://olegh.ftp.sh/autocomplete.html

這是Celeron-300機器,FreeBSD操作系統。在主動搜索期間loadin小於1%的CPU。但是,用C++編寫,並使用mmap/pread系統調用。所以,我不確定,它會在Android上運行。我可以根據要求分享資源。

關於算法:使用preindexed散列索引文件, 基於詞典中所有可能的詞組前綴。 通過mmapped哈希表找到的存儲桶,通過pread獲取到內存中。

索引相對較慢的操作: 索引15,000,000字典條目可能會在PERL腳本上消耗約1小時。 但搜索/檢索速度非常快,性能不依賴於字典大小。

0

我不會推薦寫你自己的算法;相反,你應該使用現有的庫,如Apache Lucene