Isso é suportado no driver. Tudo que você precisa fazer é definir seus campos para serem indexados como "texto" como em
$text:field
. Em uma lista completa:
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)
}
}
Que, quando visto do shell do mongo, dará:
> 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
}
]