我正在用graphQL开发一个TypeORM后端,我在TypeORM数据库中找到了FREETEXT、CONTAiNS、FREETEXTTABLE和CONTAINSTABLE选项,用于全文搜索。由于FREETEXTTABLE有一个“秩列”,所以它更有用,我正在使用这个选项。我将所需的设置添加到数据库中,通过下面的查询,它在将查询直接应用到数据库时工作正常:
SELECT * FROM content
INNER JOIN freetexttable( content , *, 'test text') newtable ON newtable.[KEY] = "id"
ORDER BY newtable.RANK desc
OFFSET 0 ROWS FETCH NEXT 12 ROWS ONLY但是,当我试图像下面这样在TypeORM中使用它时,我有一些错误。
import { getRepository } from "typeorm";
let repo = getRepository(Content)
return repo.createQueryBuilder("qb")
.innerJoin(FREETEXTTABLE( qb , *, 'light'), newtable,newtable.[KEY] = qb.id)
.skip(0)
.take(12)
.getManyAndCount();它返回这个错误:
"Error: Invalid object name 'FREETEXTTABLE( qb , *, 'light')'."如果我的代码有问题,请告诉我好吗?或者您知道在SQL数据库中进行全文搜索的更好的选择。
发布于 2022-05-18 06:33:38
我在寻找同样的问题。我无法找到一个解决方案来使用带有typeorm的FREETEXTTABLE,所以我不得不使用原始SQL实现它。使用以下代码
repo.query(" RAW SQL ")https://stackoverflow.com/questions/72118727
复制相似问题