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备份MyISAM与InnoDB
- 2. 在MySQL(InnoDB的)
- 3. MySQL的死锁问题与InnoDB的
- 4. 与新的innodb memcached插件MYSQL混淆?
- 5. Mysql的InnoDB的crach
- 6. innoDB的MySQL备份
- 7. MySQL InnoDB CASCADE?
- 8. Mysql/InnoDB或Postgresql?
- 9. mysql innodb锁
- 10. MySQL InnoDB锁定
- 11. MYSQL - 锁定 - InnoDB
- 12. MySQL PBXT vs InnoDB
- 13. MySQL InnoDB优化
- 14. MySQL InnoDB Global Var?
- 15. Mysql innodb参考完整性与空tablr
- 16. 插入触发器后MySQL - MyISAM与InnoDB
- 17. MySQL与InnoDB表不断崩溃
- 18. 事务不回滚与MySQL/InnoDB
- 19. 的MySQL - InnoDB的VS的MyISAM
- 20. MySQL的InnoDB的错误1005
- 21. MySql,InnoDB和NULL值
- 22. mysql innodb vs myisam inserts
- 23. MySQL InnoDB锁定行
- 24. MySQL-InnoDb智能锁?
- 25. Mysql InnoDB数据库
- 26. mysql innodb中断表
- 27. Fork MySQL INSERT INTO(InnoDB)
- 28. MySQL InnoDB锁问题
- 29. Mysql中的InnoDB错误
- 30. 配置MySQL的InnoDB为