Django的全文搜索你如何用的MySQL的InnoDB全文搜索配置Django的。 MySQL Myisam引擎支持全文搜索,但我将使用InnoDB。这是使用Sphinx的最佳方式吗?如果你解释你的配置,我将不胜感激。 (顺便说一句,我也不知道它是如何与postgresql一起工作的。)与MySQL的InnoDB
回答
虽然它也可以被配置为自动与MySQL,狮身人面像确实是一个单独的工具来的MyISAM或InnoDB的。与MyISAM中的简单全文搜索相比,它提供了更好的处理和性能,但是当然,价格是基于搜索和数据库同时查询条件变得困难。您可以使用SphinxSE(存储引擎)来查询并通过MySQL进行连接,但不如将其保存在数据库引擎中,并且连接性能不佳。
否则,你可以拿MyISAM和InnoDB的混合方式。将所有的规范数据放在适当的InnoDB表中,并且只需使用MyISAM来存储全文searchbait。对于正常操作,您只需触摸InnoDB内容;只有在进行全文搜索时,您是否需要加入MyISAM表。然后,您必须确保在成功的事务处理之后,从插入到InnoDB表中的任何新文本更新MyISAM表。
尽管MyISAM中缺少事务支持,偶尔会使并发或错误条件中的数据不一致(显然也适用于像Sphinx,Lucene等单独全文存储解决方案的危险),但这不是一个大问题因为只有searchbait变得不一致,而不是你的实际数据。您也可以借此机会以不同方式处理您的全文内容,例如通过应用简单的词干,因为MySQL本身并未实现。
PostgreSQL有其自身内置的全文基础上,@@
操作的东西。它并不完全符合Sphinx的速度,但在功能上比MyISAM FULLTEXT快很多(例如词干,字典,更好地处理相关性值),并且您仍然可以将其与其他查询条件自由组合。
上次我正要做这样的事情我想试试django-sphinx,所以这也可能是您的选择。
可能要看看Haystack
搜索不必硬。 Haystack可让您编写一次搜索代码并选择您想要的搜索引擎。有了一个熟悉的API,它可以让任何Djangonaut都能在家中感受到自己的感觉,并且允许您根据需要交换事物的架构,这就是搜索应该如何实现的。
- 1. 在MySQL(InnoDB的)
- 2. mysql innodb锁
- 3. MYSQL - 锁定 - InnoDB
- 4. MySQL PBXT vs InnoDB
- 5. MySQL InnoDB CASCADE?
- 6. MySQL InnoDB优化
- 7. Mysql/InnoDB或Postgresql?
- 8. MySQL InnoDB Global Var?
- 9. 事务不回滚与MySQL/InnoDB
- 10. MySQL与InnoDB表不断崩溃
- 11. Mysql innodb参考完整性与空tablr
- 12. 的MySQL - InnoDB的VS的MyISAM
- 13. MySQL的InnoDB的错误1005
- 14. MySql,InnoDB和NULL值
- 15. MySQL InnoDB锁定行
- 16. mysql innodb vs myisam inserts
- 17. MySQL-InnoDb智能锁?
- 18. Fork MySQL INSERT INTO(InnoDB)
- 19. MySQL InnoDB锁问题
- 20. Mysql InnoDB数据库
- 21. MySQL集群比InnoDB的
- 22. InnoDB中的MySQL事务
- 23. 配置MySQL的InnoDB为
- 24. InnoDB与MyISAM
- 25. mysql max_user_connections以及innodb vs myisam
- 26. MySQL InnoDB插入非常慢
- 27. 通过PHP检测MySQL InnoDB
- 28. MySQL InnoDB插入性能(Windows)
- 29. PHP-MYSQL-Innodb缓慢插入
- 30. MySQL InnoDB解锁一行