1

我的表中有一个brand_name列,我的brand_names表中有一个product_nameproduct_names

目前,我有两个单独的 SELECT(一个 onbrand_names.brand_name和一个 on product_names.product_name),我使用 UNION 将两个结果集 OR 在一起。但是,当搜索“SomeBrandName Some Product Name”时,即使存在这样的产品,我的 SQL 也会返回零个结果(这是因为术语-SomeBrandName Some ProductName-不会全部出现)。brand_names.brand_nameproduct_names.product_name

所以我需要帮助来计算 SQLite / FTS3 等价物......

SELECT (brand_names.brand_name || ' ' || product_names.product_name) AS brand_and_product_name FROM brand_names, product_names WHERE brand_and_product_name MATCH 'SomeBrandName Some Product Name'

我需要实现此目标的实际 SQLite / FTS3 SQL 是什么?

在研究方面,我已经阅读了SQLite FTS3 指南,但没有提到多个表。

我还看到了一个类似的问题,它更高级一些,因此对于我在这里尝试实现的简单搜索可能有点过分。

4

2 回答 2

0

FTS 搜索只能在 FTS 索引中进行。

如果您想获得“品牌产品”的结果,您必须创建一个 FTS 表,在一行中包含这些词。(要减少存储,请尝试在视图上使用外部内容表。)

于 2014-10-09T11:52:57.243 回答
0

为此,您必须为您的两个表准备第一个虚拟表。然后,您可以使用 join 对它们应用索引搜索(FTS Search),就像您使用 join with simple table 一样。

于 2017-08-09T08:31:18.713 回答