0

我有一个用例,我想按公司名称或部门名称搜索公司。如果我在搜索查询中输入部门名称,它应该返回具有该部门的公司的名称。

为了实现这一点,我创建了一个包含公司名称的表和一个包含公司名称的列以及由空格分隔的部门名称。

首先,我尝试在列上进行全文搜索,但在 FTS 查询中,仅当与 ts_vector 函数创建的向量完全匹配时才会返回结果。

然后我尝试使用产生更好结果的三元组进行搜索,但是当我输入带有任何部门名称的公司名称时,我没有得到结果,因为创建的三元组与搜索查询的顺序不同。

我可以做些什么来改善我在桌子上的搜索?

4

1 回答 1

0

为什么不创建这样的辅助表并使用简单的选择而不是全文搜索呢?

CREATE TABLE company_keywords (
  company VARCHAR PRIMARY KEY,
  keyword VARCHAR NOT NULL
);

SELECT DISTINCT company FROM company_keywords WHERE keyword LIKE 'XYZ%';
于 2019-01-05T20:54:50.503 回答