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