Prisma.io + 全文搜索 + PostgreSQL:搜索仅适用于完全匹配

Fel*_*iel 6 postgresql full-text-search prisma

我已启用prisma 的全文搜索,并且我想搜索email返回所有匹配条目的字段。

我得到以下代码:

const data = await this.prismaService.merchant.findMany({
  where: {
    email: {
      search: '12rwqg13tr222vqfgedvqrw22@someprovider.de',
    },
  },
});
Run Code Online (Sandbox Code Playgroud)

当我输入确切的电子邮件地址时,此功能有效。但是,当我尝试搜索其中的一部分时,即12rwqg13tr222vqfgedvqrw22@someprovider,我没有得到任何结果。

我是否必须创建索引才能实现此目的?在文档中提到,如果我想加快查询速度,我只需要 PostgreSQL 的索引。我在这里错过了什么吗?

Fel*_*iel 13

显然我看错了功能。contains就是我一直在寻找的:

const res = await prisma.post.findMany({
  where: {
    author: {
      email: {
        contains: 'prisma.io',
      },
    },
  },
})
Run Code Online (Sandbox Code Playgroud)

编辑:如果您需要不区分大小写的搜索,请查看prisma 文档以了解区分大小写

const res = await prisma.post.findMany({
  where: {
    author: {
      email: {
        contains: 'prisma.io',
        mode: 'insensitive',
      },
    },
  },
})
Run Code Online (Sandbox Code Playgroud)

Prisma.IO这也将匹配。