0

我有一个非常小的 MySQL 数据库,用于存储有关商品和用户的信息。我正在尝试在用户中实现搜索,他们按名字和姓氏购买了一些商品。狮身人面像搜索引擎有很多很好的建议。所以我正在使用它。现在我的搜索如下所示:

  1. 根据名字和姓氏搜索用户的 Sphinx ID。

  2. 根据特定过滤器(id 或类别、价格等)在 MySQL(不使用 Sphinx)中搜索商品,其中 user_id IN ID 来自 item1。

如何通过一个 JOIN 查询来实现这一点?

4

1 回答 1

2

你不能直接,因为正如你所说的狮身人面像索引和数据库存在于不同的“系统”中。

因此,“加入”正在您的应用程序中进行。听起来您已经在实施什么是有效的联接。

但是如果你真的不想继续使用那个系统,有两种选择,

1)狮身人面像。它是一个假的 mysql 存储引擎,当您对虚拟表进行查询时,会在后台查询回 sphinx 索引,并将查询结果作为表呈现给 mysql。现在因为它是一个 mysql 表,mysql 然后将它与数据库表连接以呈现结果集,结合查询和数据。(还有单独的系统,但是mysql实现了加入逻辑)

2)属性。可以将数据存储在 sphinx 索引中,以及全文索引。Sphinx 可以返回结果集中的属性。通过这种方式,您避免了连接的需要,因为您可以一次性获得搜索结果以及数据(您将从 mysql 获得的数据)。(通过这种方式,您可以创建一个大的“标准化”索引)

于 2013-09-07T11:51:17.043 回答