我有兴趣获取数据库的文本搜索,但我已完成以下操作,但仍然无效。
1 即可。我在特定字段上创建了一个关于集合的索引。
Db.data1.ensureIndex({title:"text"})
- 效果很好。
2 即可。还使用以下php.ini
setParameter=textSearchEnabled=true
第3 即可。使用以下查询搜索数据库并收到错误消息:
db.data1.runCommand("text",{title:"Arvind"})
Errmsg: "no such cmd:text"
bad cmd: { "text" : "data1","title":"Arvind"}
"ok":0
请你帮忙解决这个问题。
答案 0 :(得分:1)
我认为您没有启用文字搜索,或者您的任何命令都有效。
您需要在mongod startup中启用文字搜索。或者,可以从" admin"中调用db.runCommand
。数据库。这是不 PHP ini的设置。
然后你可以运行db.collection.ensureIndex({ "field": "text" })
其中" field"是您希望启用文本索引的字段。您似乎可以在PHP代码中完成此操作并忽略错误。请注意,您可能只对集合中包含一个文本索引。
然后使用正确的运行文本搜索形式:
db.collection.runCommand("text", { "search": "phrase" })
所以不管"哪个"您已索引参数的字段始终传递给"搜索"参数。
另请注意,您必须拥有mongodb服务器版本2.4及更高版本才能实现此功能。有关详细信息,请参阅documentation。
答案 1 :(得分:0)
根据文档,Array.prototype.map() 并根据我的观察删除了3.0中的text命令,即使MongoDB 2.6 deprecated the text command。
改为使用$text
命令。
更新:the release notes make no mention of it文档确实表明该命令已被删除。