MongoDB 中全文检索搜索到结果之后,我们还可以按照匹配的程度,将结果按照相似度打分来排序,分数越高,表示相似度越近。
db_name.table_name.find({$text:{$search:"keyword"}}, {"score" : {"$meta": "textScore"}} );
名称 | 描述 |
---|---|
db_name | 数据库名 |
table_name | 集合名 |
keyword | 要搜索的关键词 |
按照匹配的分数排序。
我们首先,使用 mongo 命令,连接上数据库,具体命令如下:
mongo
如下图所示:
现在,我们使用 use 命令,切换到 haicoder 数据库,具体命令如下:
use haicoder
现在,我们使用 insert 插入记录,具体命令如下:
db.haicoder.insert([ {id:1, "url" : "haicoder.net/c", "content" : "c language"}, {id:2, "url" : "haicoder.net/cpp","content" : "cpp stl language"}, {id:3, "url" : "haicoder.net/golang","content" : "go golang language"} ]);
执行完毕后,此时,如下图所示:
我们看到,此时提示我们成功插入了多条记录,现在,我们为 content 字段创建全文检索,具体命令如下:
db.haicoder.ensureIndex({"content":"text"})
执行完毕后,如下图所示:
我们看到,我们已经成功创建了全文检索,现在,我们使用全文搜索进行搜索,具体命令如下:
db.haicoder.find({"$text":{"$search": "c language -go"} }, {_id:0}, {"score": {"$meta": "textScore"}})
执行完毕后,此时,如下图所示:
此时,会按照相似度进行排序。
MongoDB 中全文检索搜索到结果之后,我们还可以按照匹配的程度,将结果按照相似度打分来排序,分数越高,表示相似度越近。