mongoDB³£¼ûµÄ²éѯË÷Òý£¨Èý£©(¶þ)
¡££¨É¾³ý¹ý³ÌÊÇÓɺǫ́³ÌÐòû60sÅÜÒ»´Î£¬¶øÇÒɾ³ýÒ²ÐèҪһЩʱ¼ä£¬ËùÒÔ´æÔÚÎó²î£©
?
6.È«ÎÄË÷Òý
¶Ô×Ö·û´®Óë×Ö·û´®Êý×é´´½¨È«ÎÄ¿ÉËÑË÷µÄË÷Òý
? ? ?ʹÓÃÇé¿ö£º{author:"",titile;"",article:""}
?
´´½¨·½·¨
? ? 1. db.articles.ensureIndex({key:"text"})
? ? 2. db.articles.ensureIndex({key_1:"text",key_2:"text"})
? ? 3. db.articles.ensureIndex({"$**":"text"})
ʹÓÃ
? ? 1. db.articles.find({$text:{$search:"aa"}})
? ? 2. db.articles.find({$text:{$search:"aa bb cc"}}) #¿Õ¸ñ±íʾ»ò
? ? 3. db.articles.find({$text:{$search:"aa bb -cc"}}) #-cc ±íʾ²»°üº¬cc
? ? 4. db.articles.find({$text:{$search:"\"aa\" bb cc"}}) #¡°¡±£¬¼ÓÒýºÅ£¬±íʾÓë
?
Àý×Ó£º
> db.jerome_2.ensureIndex({"article":"text"}) #´´½¨È«ÎÄË÷Òý
{
"createdCollectionAutomatically" : true,
"numIndexesBefore" : 1,
"numIndexesAfter" : 2,
"ok" : 1
}
> db.jerome_2.insert({"article":"aa bb cc dd ee"}) #²åÈë²âÊÔÊý¾Ý
WriteResult({ "nInserted" : 1 })
> db.jerome_2.insert({"article":"aa bb rr gg zz"})
WriteResult({ "nInserted" : 1 })
> db.jerome_2.insert({"article":"aa bb"})
WriteResult({ "nInserted" : 1 })
> db.jerome_2.insert({"article":"aa bb cc zz ff ww"})
WriteResult({ "nInserted" : 1 })
> db.jerome_2.find({$text:{$search:"aa"}}) #²éÕÒ
{ "_id" : ObjectId("5572904271c0bbd90f4ce0e2"), "article" : "aa bb rr gg zz" }
{ "_id" : ObjectId("5572903371c0bbd90f4ce0e1"), "article" : "aa bb cc dd ee" }
{ "_id" : ObjectId("5572905671c0bbd90f4ce0e4"), "article" : "aa bb cc zz ff ww" }
{ "_id" : ObjectId("5572904771c0bbd90f4ce0e3"), "article" : "aa bb" }
> db.jerome_2.find({$text:{$search:"ff"}})
{ "_id" : ObjectId("5572905671c0bbd90f4ce0e4"), "article" : "aa bb cc zz ff ww" }
>
db.jerome_2.find({$text:{$search:"aa bb cc"}})
{ "_id" : ObjectId("5572904271c0bbd90f4ce0e2"), "article" : "aa bb rr gg zz" }
{ "_id" : ObjectId("5572903371c0bbd90f4ce0e1"), "article" : "aa bb cc dd ee" }
{ "_id" : ObjectId("5572905671c0bbd90f4ce0e4"), "article" : "aa bb cc zz ff ww" }
{ "_id" : ObjectId("5572904771c0bbd90f4ce0e3"), "article" : "aa bb" }
> db.jerome_2.find({$text:{$search:"aa bb -cc"}})
{ "_id" : ObjectId("5572904271c0bbd90f4ce0e2"), "article" : "aa bb rr gg zz" }
{ "_id" : ObjectId("5572904771c0bbd90f4ce0e3"), "article" : "aa bb" }
> db.jerome_2.find({$text:{$search:"\"aa\" \"bb\" \"cc\""}})
{ "_id" : ObjectId("5572903371c0bbd90f4ce0e1"), "article" : "aa bb cc dd ee" }
{ "_id" : ObjectId("5572905671c0bbd90f4ce0e4"), "article" : "aa bb cc zz ff ww" }
>
?
?
È«ÎÄË÷ÒýÏàËÆ¶È
? ? $meta²Ù×÷·û£º£ûscore£º£û$meta:"textScore"£ý£ý£¬Ð¶ÔزéѯÌõ¼þºóÃæ¿ÉÒÔ·´»Ú·µ»Ø½á¹ûµÄÏàËÆ¶È£¬ÓësortÒ»ÆðʹÓÿÉÒÔ´ïµ½ºÜºÃµÄʵÓÃЧ¹û¡£
?
> db.jerome_2.find({$text:{$search:"aa bb"}},{score:{$meta:"textScore"}}) #scoreÔ½¸ß£¬ÏàËÆ¶ÈÔ½¸ß¡£
{ "_id" : ObjectId("5572904271c0bbd90f4ce0e2"), "article" : "aa bb rr gg zz", "score" : 1.2 }
{ "_id" : ObjectId("5572903371c0bbd90f4ce0e1"), "article" : "aa bb cc dd ee", "score" : 1.2 }
{ "_id" : ObjectId("5572905671c0bbd90f4ce0e4"), "article" : "aa bb cc zz ff ww", "score" : 1.1666666666666667 }
{ "_id" : ObjectId("5572904771c0bbd90f4ce0e3"), "article" : "aa bb", "score" : 1.5 }
> db.jerome_2.find({$text:{$search:"aa bb"}},{score:{$meta:"textScore"}}).sort({score:{$meta:"textScore"}}) #¸ù¾Ýscore½øÐÐÅÅÐò
{ "_id" : ObjectId("5572904771c0bbd90f4ce0e3"), "article" : "aa bb", "score" : 1.5 }
{ "_id" : ObjectId("5572903371c0bbd90f4ce0e1"), "article" : "aa bb cc dd ee", "score" : 1.2 }
{ "_id" : ObjectId("5572904271c0bbd90f4ce0e2"), "article" : "aa bb rr gg zz", "