我是新來的sql數據庫,目前我想做一個數據庫,可以執行T9搜索方法,但我不知道如何做到這一點。任何人都可以指導我呢?在此先感謝如何在sql中執行T9搜索方法?
回答
在Android中,我使用GLOB進行T9搜索,例如GLOB '[ABC] [DEF] *'
db.rawQuery("SELECT _id, word, freq FROM dicttable WHERE word GLOB '"+searchWord+"*' ORDER BY freq DESC",
null);
希望這可以幫助
我想你要求數據庫做更多的工作 - 你可以事先知道每個單詞的數字是什麼,所以你不需要在運行時做一個通配符匹配。我的擔心是,這將阻止有效使用索引的數據庫。我會檢查這個查詢執行計劃 - 如果它看起來有效率很高,但否則在將系統擴展到大量查找時可能會遇到問題。 – Rup 2012-01-03 09:25:30
你應該知道的第一件事,就是LIKE操作,自動完成:
http://www.w3schools.com/sql/sql_like.asp
SQL查詢是不是T9式查詢的最佳方式。
有更高效的數據結構,可以爲這類問題提供可擴展的強大解決方案。 (一個Trie,例如:http://en.wikipedia.org/wiki/Trie)
Trie?但是在任何給定的節點都會有許多不同的單詞,所以你需要一些比'只添加這個字母'更復雜的東西,這就是通常的工作方式(至少需要'將這個字母添加到父母單詞X 「)。此外,您還需要在沒有完全匹配的節點上存儲「最佳匹配較長的單詞」,否則您將不得不想出一條遍歷整個子樹的方法來查找並排序它們,而不是像真的一樣。 – Rup 2011-12-30 01:37:01
簡而言之,您需要在數據散列上使用trie。確切的實施需要進一步調查。同時,我提出了一個不太合適的基於SQL的折中方案,但是答案不同。 – 2011-12-30 02:02:42
假設你不用擔心效率太高,並且有一個表格包含這種形式的整個字典:Dictionary([id],[hashed],[word])
凡[散列]字段是與它的組符號替換的各字符(例如「A」,「b」,和「c」可與「A」代替)
假設我們有一個'散列'存儲函數,使得散列([word])= [散列]。
然後你就可以簡單地運行此查詢: Select word from Dictionary where [hashed] like (hash(input)+'%')
- 1. 如何執行索引搜索方法
- 2. SQL關鍵字搜索算法:此SQL執行順序搜索,如何執行索引搜索?
- 3. 如何執行像在SQL Server中搜索涉及方括號
- 4. 如何在java中使用hashtable執行搜索方法?
- 5. SQL執行搜索/替換搜索
- 6. 如何在iPhone中執行Spotlight搜索
- 7. 如何在iphone中執行搜索sdk
- 8. 如何在RoR中執行此搜索?
- 9. 如何執行Java IDE以編程方式執行方法引用的搜索?
- 10. SQL Server:模擬全文搜索 - 執行類似搜索的其他方法
- 11. 從PHP如何在SQL Server中有效執行此搜索?
- 12. 如何在SQL中執行一對多搜索?
- 13. 如何在Ext JS搜索字段中執行搜索
- 14. 在wp8中執行搜索
- 15. 在django中執行搜索
- 16. 在執行搜索
- 17. 如何在VSCode中搜索方法?
- 18. 在TSQL中執行動態條件搜索的更好方法?
- 19. 在Python中執行字符串搜索的最快方法
- 20. 如何在c#和SQL Server中實現搜索方法?
- 21. 如何在jqgrid加載模式下執行(SQL LIKE)搜索
- 22. 如何在以前的查詢結果上執行SQL搜索
- 23. 搜索執行
- 24. SQL:如果未找到任何行,請執行其他搜索?
- 25. sql - 從2個表中搜索方法
- 26. 如何在搜索欄中執行搜索時獲取tableview的原始索引?
- 27. 如何在sql中搜索多個詞sql全文搜索
- 28. 對Tkinter按鈕執行SQL搜索
- 29. 在大型數據上執行AJAX搜索的更好方法
- 30. Meteor.js - 在多個集合上執行用戶搜索的方法
正如你想實現預測文本?我想你想在內存中使用樹,而不是數據庫 - 我認爲這不會很好地轉化爲SQL。 – Rup 2011-12-30 01:17:58
是的,我想實現預測文本,這意味着使用數據庫本身很難執行T9搜索嗎?感謝您的建議 – Ricky 2011-12-30 01:25:27
我想你只是想要一個表格,列號代表,單詞,單詞優先。因爲如果沒有完全匹配,你想要搜索'234'這樣的數字,那麼你可能需要把這個數字保留一個字符串 - 這對我來說都有點麻煩。 – Rup 2011-12-30 01:33:47