Mongodb中的文本搜索无效

时间:2014-03-17 04:38:24

标签: mongodb text indexing

我有兴趣获取数据库的文本搜索,但我已完成以下操作,但仍然无效。

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

请你帮忙解决这个问题。

2 个答案:

答案 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文档确实表明该命令已被删除。