MongoDB全文检索相似度

MongoDB全文检索相似度教程

MongoDB 中全文检索搜索到结果之后,我们还可以按照匹配的程度,将结果按照相似度打分来排序,分数越高,表示相似度越近。

MongoDB全文检索相似度详解

语法

db_name.table_name.find({$text:{$search:"keyword"}}, {"score" : {"$meta": "textScore"}} );

参数

名称 描述
db_name 数据库名
table_name 集合名
keyword 要搜索的关键词

说明

按照匹配的分数排序。

案例

我们首先,使用 mongo 命令,连接上数据库,具体命令如下:

mongo

如下图所示:

22_MongoDB全文搜索分数排序.png

现在,我们使用 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"} ]);

执行完毕后,此时,如下图所示:

23_MongoDB全文搜索分数排序.png

我们看到,此时提示我们成功插入了多条记录,现在,我们为 content 字段创建全文检索,具体命令如下:

db.haicoder.ensureIndex({"content":"text"})

执行完毕后,如下图所示:

24_MongoDB全文搜索分数排序.png

我们看到,我们已经成功创建了全文检索,现在,我们使用全文搜索进行搜索,具体命令如下:

db.haicoder.find({"$text":{"$search": "c language -go"} }, {_id:0}, {"score": {"$meta": "textScore"}})

执行完毕后,此时,如下图所示:

25_MongoDB全文搜索分数排序.png

此时,会按照相似度进行排序。

MongoDB全文检索相似度总结

MongoDB 中全文检索搜索到结果之后,我们还可以按照匹配的程度,将结果按照相似度打分来排序,分数越高,表示相似度越近。