Q
通配符搜索
6
A
回答
15
不幸的是,你不能使用MySQL全文索引來做到這一點。您無法立即從索引中檢索'*nited states'
,因爲左側的字符是索引中最重要的部分。但是,您可以可以搜索'United Sta*'
。
// the only possible wildcard full-text search in MySQL
WHERE MATCH(column) AGAINST ('United Sta*' IN BOOLEAN MODE)
當用句子搜索整個單詞時,MySQL的全文表現最好 - 即使這樣可能會吸引有時。否則,我會建議使用外部全文引擎,如Solr或Sphinx。我認爲斯芬克斯允許使用前綴和後綴通配符,但不確定其他人。
你可以回到MySQL的LIKE
條款,但同樣,像LIKE '%nited states'
或LIKE '%nited Stat%'
,運行查詢也將受到影響性能,因爲它不能使用索引的前幾個字符。 'United Sta%'
和'Unit%States'
都可以,因爲索引可以用於第一批已知字符。
使用MySQL的全文索引的另一個相當重要的警告是停用詞列表和minimum word length settings。例如,在共享主機環境中,您將被限制爲大於或等於4個字符的單詞。因此,搜索'Goo'以獲得'Google'將會失敗。 The stop-word list也不允許使用'and','maybe'和'outside'等常用詞 - 實際上,共有548個詞組合在一起!再一次,如果不使用共享主機,這些設置相對容易修改,但如果您是這樣,那麼您會因某些默認設置而感到惱火。
相關問題
- 1. 通配符搜索
- 2. 通配符搜索
- 3. 通配符搜索
- 4. ngram通配符搜索彈性搜索
- 5. 彈性搜索通配符搜索
- 6. 字符串搜索/通配符匹配
- 7. Gsutil通配符搜索
- 8. 搜索使用通配符
- 9. C#MySqlParameter通配符搜索
- 10. 通配符搜索w/MySQL
- 11. C#DirectoryInfo.GetFiles通配符搜索
- 12. Xpath通配符搜索
- 13. 搜索與通配符
- 14. CRM Dynamics搜索通配符
- 15. 使用通配符搜索
- 16. Lucene.Net TermQuery通配符搜索
- 17. Solr通配符搜索
- 18. 通配符搜索在PHP
- 19. Oracle NVL通配符搜索
- 20. MYSQL搜索/通配符
- 21. 搜索用通配符
- 22. Lucene通配符搜索
- 23. Word VBA通配符搜索匹配
- 24. Select2 - 搜索通配符匹配
- 25. PHP搜索字符串(帶通配符)
- 26. 通配符字符串搜索算法
- 27. 用搜索字符串。通配符
- 28. elasticsearch通配符搜索和運算符
- 29. 我如何搜索使用通配符
- 30. Laravel 5.4搜索後區通配符
這將有助於瞭解其來源或其中的一部分 – devanand
您需要展開您的問題。就目前而言,它將被關閉。 – TheCarver