我已经启用 prisma 全文搜索,我想搜索
email
字段返回所有匹配的条目。
我得到以下代码:
const data = await this.prismaService.merchant.findMany({
where: {
email: {
search: '[email protected]',
},
},
});
当我输入确切的电子邮件地址时,这是有效的。但是,当我尝试搜索它的一部分时,即
12rwqg13tr222vqfgedvqrw22@someprovider
,我没有得到任何结果。
我是否必须创建索引才能完成此操作?在文档中提到,如果我想加快查询速度,我只需要 PostgreSQL 的索引。我在这里错过了什么吗?
contains
是我要找的东西:
const res = await prisma.post.findMany({
where: {
author: {
email: {
contains: 'prisma.io',
},
},
},
})
编辑:如果您需要不区分大小写的搜索,请查看区分大小写的 prisma 文档
const res = await prisma.post.findMany({
where: {
author: {
email: {
contains: 'prisma.io',
mode: 'insensitive',
},
},
},
})
这也匹配
Prisma.IO
。
请记住,包含不同于全文搜索方法。