在test中创建两个文档,命令如下
db.test.insert( [{
Sysno:1111, Productname:"Rose", Weight:123, Productmode:"aaa", }, {
Sysno:2222, Productname:"flower", Weight:345, Productmode:"aaa", } ] )
在要test这个集合里所有文档里(全文范围)查找包含关键词为rose的文档,分别给productname和productmode字段设置了优先级,没设置优先级的字段默认优先级是1。 命令以及结果如下:
db.test.createIndex({
"$**":"text"},{
"weights":{
"Productname":10,"Productmode":5}})
查询结果如下:
再创建两个文档,再查找rose,结果如下
db.test.insert( [{
Sysno:3333, Productname:"bbb", Weight:123, Productmode:"rose", }, {
Sysno:4444, Productname:"aaa", Weight:"rose", Productmode:"ccc", } ] )
可以看出,查找时,先在某文档的productname字段里找是否包含了关键词rose,包含则输出该文档;否则就在productmode里找是否包含rose,有则输出;如果还没有就在其他所有字段里找rose。查找顺序是是由之前设置的优先度决定的。
创建全文本索引的语法如下: