gpt4 book ai didi

mysql - 使用 MySQL InnoDB 进行 Django 全文搜索

转载 作者:行者123 更新时间:2023-11-29 04:04:28 31 4
gpt4 key购买 nike

如何配置 Django 以使用 MySQL-InnoDB 进行全文搜索。 MySQL Myisam 引擎支持全文搜索,但我将使用 InnoDB。这是使用 Sphinx 的最佳方式吗?如果您解释您的配置,我将不胜感激。 (顺便说一下,我也想知道它是如何与 postgresql 一起工作的。)

最佳答案

虽然可以配置为自动与 MySQL 对话,但 Sphinx 实际上是 MyISAM 或 InnoDB 的独立工具。它提供了比 MyISAM 中简单的全文搜索更好的处理和性能,但当然代价是同时基于搜索和数据库的条件查询变得困难。您可以使用 SphinxSE(存储引擎)通过 MySQL 进行查询和连接,但它不如将其保留在数据库引擎中灵活,并且连接性能不佳。

否则,您可以采用 MyISAM 和 InnoDB 的混合方法。将所有规范数据放入适当的 InnoDB 表中,仅使用 MyISAM 存储全文搜索诱饵。对于正常操作,您只需触摸 InnoDB 内容;只有在进行全文搜索时才需要加入 MyISAM 表。然后,您必须确保在成功事务后从插入到 InnoDB 表中的任何新文本更新 MyISAM 表。

虽然 MyISAM 中缺乏事务支持偶尔会导致数据在并发或错误情况下不一致(这种危险显然也适用于单独的全文存储解决方案,如 Sphinx、Lucene 等),但这在现实中并不是一个大问题因为只有搜索诱饵变得不一致,而不是您的实际数据。您还可以借此机会以不同方式处理您的全文内容,例如通过应用普通词干提取,因为 MySQL 本身并没有实现它。

PostgreSQL 有自己内置的基于@@ 运算符的全文内容。它的速度不及 Sphinx 的速度,但在功能(例如词干提取、字典、更好地处理相关值)方面远远领先于 MyISAM FULLTEXT,而且您仍然可以将它与其他查询条件自由组合。

关于mysql - 使用 MySQL InnoDB 进行 Django 全文搜索,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1907205/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com