【问题标题】:Text search using postgresql使用 postgresql 进行文本搜索
【发布时间】:2019-01-03 11:51:44
【问题描述】:

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

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

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

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

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

【问题讨论】:

    标签: sql database postgresql full-text-search trigram


    【解决方案1】:

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

    CREATE TABLE company_keywords (
      company VARCHAR PRIMARY KEY,
      keyword VARCHAR NOT NULL
    );
    
    SELECT DISTINCT company FROM company_keywords WHERE keyword LIKE 'XYZ%';
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-03-31
      • 1970-01-01
      • 1970-01-01
      • 2013-03-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多