typeorm mongo 全文搜索 - 使用 $meta 排序:“textScore”

van*_* le 7 full-text-search mongodb typeorm

我正在使用 typeorm 连接 mongodb,typeorm 支持对全文搜索 mongodb 返回的相关分数进行排序吗?就像这里描述的那样。

从 mongo,我想进行查询:

db.todos.find( {$text: { $search: "coffee" }}, {score: { "$meta": "textScore" }}) .sort({score: { "$meta": "textScore" }}) .limit(20);
Run Code Online (Sandbox Code Playgroud)

我如何从 typeorm 查询 MongoRepository?谢谢。

小智 1

我已经测试了以下代码并且它有效:

await todoRepository.find({
  where: {
    $text: { $search: 'search query here' },
  },
  take: 20
});
Run Code Online (Sandbox Code Playgroud)

PS 您需要确保 Todo 集合中的字段有文本索引。

我不确定scoreTypeORM 的排序是否正常。到目前为止我还没有取得任何成功。