创建索引
db.MyCollection.createIndex({'$**': 'text'}, {name: 'FullTextIndex'})
查找匹配项
db.MyCollection.find({$text: {$search: 'myWord'}}).count()
针对一个值为 "myWord is here" 的字段,结果为1。
如果按照以下方式对所选字段进行常规搜索,则会返回两条记录。一条记录的名称为 "myWord is here",而第二条记录的详细信息中的 "Details" 字段中有 "myWord",其内容为 "something here and myWord is here"。
db.getCollection('MyCollection').find({
"$or":[{"Name":/myWord/i}, {"Details":/myWord/i}]
}).sort({"Name": 1})
我该如何重新创建索引,以便在所有字段中搜索,类似于 SQL 中的任何字段都像 %searchText% 一样?
最后,我应该如何使用 C# 驱动程序编写此搜索查询?
更新:
我进一步研究了它。它会找到所有具有前缀和后缀空格的搜索键的结果,但不会返回单词中字符串的一部分。
例如,它会为值“Hello myWord is here”返回记录,但不会返回“HellomyWord”。
但是根据这份文档,它必须支持通配符搜索。 https://docs.mongodb.com/v3.0/reference/operator/query/text/