的最佳匹配我想搜索表,並從表使用像不是完整的文本SERCH.iS有任何掃描嗎?使用MySQL聲明(自然匹配)
回答
這是你在找什麼?
SELECT username FROM users WHERE username LIKE '%value%';
如果你要求的全文搜索的結果按相關性排序,然後是有解決方案..但它不是微不足道的。這些是更多的'企業級解決方案:
的Solr - http://lucene.apache.org/solr/
Solr的是Apache Lucene項目的流行,速度極快的開源企業搜索平臺。其主要功能包括強大的全文搜索,點擊高亮顯示,多面搜索,動態羣集,數據庫集成和豐富的文檔(例如Word,PDF)處理。 Solr具有高度的可擴展性,提供分佈式搜索和索引複製功能,並且它支持世界上許多最大的互聯網站點的搜索和導航功能。
獅身人面像 - http://sphinxsearch.com/
一般來說,它是一個獨立的搜索引擎,旨在提供快速,規模效益和相關的全文搜索功能,其他應用程序。 Sphinx專門設計用於與SQL數據庫和腳本語言良好集成。目前內置的數據源支持通過直接連接到MySQL或PostgreSQL來獲取數據,或者使用XML管道機制(一種管道到Sphinx識別的特殊XML格式的索引器)。
在不瞭解系統和限制的情況下,不可能幫助縮小正確的解決方案。
我不是要求全文搜索 – mahela 2010-05-31 06:54:28
您要求最佳匹配,這意味着相關性搜索。 – 2010-05-31 17:05:55
按步驟操作:
a。先來看看一個精確匹配(SELECT * FROM業務WHERE名稱= '值'),然後
如果失敗:
灣將搜索字符串拆分爲單詞,對每個單詞運行查詢(將每個單詞的結果添加到數組中,其中鍵是行ID,值是相關性,對於找到的每個單詞將相關性增加1,則可以簡單地排序您的陣列(即最字相一致=最高的相關性)
b是非常inneficient,真的,你應該使用全文(無論是MySQL的內置全文或獅身人面像/ Lucene的等如上所述)
- 1. 模式雖然聲明不匹配
- 2. 索引/匹配IF聲明
- 3. 的swprintf聲明不匹配
- 4. 更新聲明,然後選擇MySQL
- 5. 「不匹配呼叫」後聲明
- 6. Typeclass聲明類型不匹配
- 7. 過程聲明和定義不匹配
- 8. SMLNJ - 與聲明類型Typcon不匹配
- 9. SQL「在」聲明匹配任何
- 10. 聲明匹配那裏條件
- 11. 匹配(基本)函數聲明
- 12. 在「匹配」聲明「使用的部分移動值」錯誤
- 13. 「預期聲明」然後聲明
- 14. Matlab雖然聲明
- 15. MYSQL聲明
- 16. MySQL或聲明
- 17. MySQL聲明
- 18. 在MySQL聲明
- 19. MySQL行聲明?
- 20. 與MySQL聲明
- 21. 使用通配符進行模式匹配時'錯誤的多重聲明'
- 22. 使用自定義匹配
- 23. 在MYSQL聲明中使用COUNT
- 24. 使用'限制'的MySQL聲明錯誤
- 25. MySql聲明和使用選擇變量
- 26. MySQL聲明使用WHERE AND OR
- 27. 不能使模式匹配與一個小鬼聲明
- 28. PHP登錄 - 如果聲明執行即使沒有匹配
- 29. 尋找自然語言匹配與SQL
- 30. 雖然聲明和Divs
我需要這個這種事情 SELECT * FROM業務WHERE名稱LIKE '基地%' ORDER BY DESC名稱,長度(名); 這是不行的 – mahela 2010-05-31 07:01:55
這個怎麼樣 ? SELECT * FROM'business'WHERE name LIKE'AI%'ORDER BY name DESC,長度(姓名)DESC – ricecake5 2010-05-31 07:47:32