Dit wordt ondersteund in de driver. Het enige wat u hoeft te doen is uw velden te definiëren die moeten worden geïndexeerd als "tekst" zoals in $text:field
.
In een volledige lijst:
import (
"labix.org/v2/mgo"
)
func main() {
session, err := mgo.Dial("127.0.0.1")
if err != nil {
panic(err)
}
defer session.Close()
session.SetMode(mgo.Monotonic, true)
c := session.DB("test").C("texty")
index := mgo.Index{
Key: []string{"$text:name", "$text:about"},
}
err = c.EnsureIndex(index)
if err != nil {
panic(err)
}
}
Wat, gezien vanuit de mongo-schaal, het volgende geeft:
> db.texty.getIndices()
[
{
"v" : 1,
"key" : {
"_id" : 1
},
"name" : "_id_",
"ns" : "test.texty"
},
{
"v" : 1,
"key" : {
"_fts" : "text",
"_ftsx" : 1
},
"name" : "name_text_about_text",
"ns" : "test.texty",
"weights" : {
"about" : 1,
"name" : 1
},
"default_language" : "english",
"language_override" : "language",
"textIndexVersion" : 2
}
]