带有 SphinxSE 的 MariaDB 10.0

MariaDB 10.0 with SphinxSE

我有一个关于将 Sphinx 与 MariaDB 10.0 集成的问题。数据库与 SphinxSE 存储引擎打包在一起,但我无法找到有关如何设置它的详细信息。考虑以下情况:

我有一个图书销售应用程序,它使用的数据库包含以下 table:"Book"、"Listing" 和 "School"。 "listing" 包含与一本书和一所学校的关系。 "book" 包含多个列,最重要的是 "title" 和 "author"。我想使用 Sphinx 在 "Book" table 上执行全文搜索,典型的查询可能是这样的(在伪 SQL 中):"Find all books whose title contains the string 'Harry P' for which a current listing exists at Harvard University"。

根据 MariaDB 的 article:"you need to create a special ENGINE=SPHINX 'search table', and then SELECT from it with full text query..." - 这是否意味着 Sphinx 根本无法 access/index 我现有的 MariaDB table?我必须将 "Book" table 重新创建为 SphinxSE table 吗?如果是这种情况,我如何指定此 table 和我的其他非 Sphinx table 之间的关系(列表、学校等)?上面的文章给出了一个非常简单的 JOIN 例子,但我还是一头雾水。如果所有 "books" 都存储在 Sphinx table 中,MariaDB 是否可以访问此 table 以进行不同类型的查询(不需要全文搜索)?

作为一个相关问题,使 Sphinx 能够同时为书名和作者编制索引的好方法是什么?该应用程序将始终指定要查询的字段。

任何帮助将不胜感激,因为数小时的搜索和阅读仍然让我对这个主题一无所知。

SphinxSE 引擎不是真正的引擎。它所做的只是为底层的 Sphinx 守护进程提供 'proxy'。它 运行 是针对 sphinx 引擎的查询,然后将 'results' 呈现为 FAKE table,以便 mysql 可以将其与原始 table 连接起来(s).

基本上是一种在一次查询中获取 sphinx 结果和适当数据的便捷方法(mysql 完成了 'JOIN' 的艰苦工作)

... 所以在 "worrying" 之前关于 sphinxSE。您需要找出一个正常的 Sphinx 索引,您可以 运行 对其进行查询。即创建一个索引,以便能够 运行 该查询。通常 sphinx 查询只会给你一个 ID 列表。

所以尝试独立设置 sphinx(没有 SphinxSE 或 MariaDB)- 创建一个索引,运行 一些针对它的查询。先让它工作。

只有 一次 索引工作(并且您了解概念)- 回来研究如何使用 SphinxSE 设置它。

有很多关于让 sphinx 工作的文章 https://www.google.com/search?q=sphinx+search+getting+started