MongoDB 中的全文检索对每一个词建立一个索引,指明该词在文章中出现的次数和位置,当用户查询时,检索程序就根据事先建立的索引进行查找,并将查找的结果反馈给用户的检索方式。
这个过程类似于通过字典中的检索字表查字的过程。MongoDB 全文索引还不支持中文。
db_name.table_name.createIndex({filed: "text"}); // 单个字段建立 全文索引 // 多个字段建立 全文索引 db_name.table_name.createIndex({filed: "text", filed1: "text", ...});
名称 | 描述 |
---|---|
db_name | 数据库名 |
table_name | 集合名 |
field | 字段 |
如果想要表示出全文检索,需要使用 “text" 判断符;要进行数据的查询,需要使用 "search” 运算符:
我们首先,使用 mongo 命令,连接上数据库,具体命令如下:
mongo
如下图所示:
现在,我们使用 use 命令,切换到 haicoder 数据库,具体命令如下:
use haicoder
现在,我们使用 insert 插入记录,具体命令如下:
db.haicoder.insert([ {"url" : "haicoder.net/c", "content" : "c in haicoder cpp in haicoder"}, {id:2, "url" : "haicoder.net/cpp","content" : "cpp in haicoder stl in haicoder"}, {id:3, "url" : "haicoder.net/golang","content" : "go in haicoder golang cpp in haicoder"} ]);
执行完毕后,此时,如下图所示:
我们看到,此时提示我们成功插入了多条记录,现在,我们为 content 字段创建全文索引,具体命令如下:
db.haicoder.ensureIndex({"content":"text"})
执行完毕后,如下图所示:
我们看到,我们已经成功创建了全文索引,现在,我们使用全文搜索进行搜索,具体命令如下:
db.haicoder.find({"$text": {"$search": "stl"} }, {_id:0} )
执行完毕后,此时,如下图所示:
我们看到,已经搜索到了数据。
MongoDB 中的全文检索对每一个词建立一个索引,指明该词在文章中出现的次数和位置,当用户查询时,检索程序就根据事先建立的索引进行查找,并将查找的结果反馈给用户的检索方式。