文本命令将被删除>应该使用$ text查询

时间:2014-06-18 16:33:30

标签: php mongodb full-text-search deprecated

我刚刚在每个组件的最后一个版本中设置了MongoDB:

  • MongoDB 2.6.2
  • PHP 5.5.11 VC11
  • php_mongo.dll(我在Windows上)1.4.3 ts VC11

我做了一个快速测试来检查我的数据库是否正常,我可以使用全文搜索来检索我的数据:

$m = new MongoClient();
$db = $m->mytestdb;

$result = $db->command(
    array(
        'text' => 'items',
        'search' => 'something',
        'limit' => 50,
    )
);

一切都很好但是当我看到MongoDB日志时,有一条奇怪的消息我在网上找不到任何答案:

  

[conn1]将在以后的版本中删除text命令。请改用$ text查询运算符。

由于我刚刚开始研究它,有点让我知道我刚刚使用的全文搜索将被弃用。

即使official doc正在使用该代码(参见示例#4)。

那么我应该使用什么代替我的代码呢?如果我有一天在apt-get update& amp;升级我的所有代码都会下拉。

2 个答案:

答案 0 :(得分:1)

我发现2.6中的新$ text,以下是如何使用命令执行与之前相同的请求:

$m = new MongoClient();
$db = $m->mytestdb;
$collection = $db->items;

$cursor = $collection->find(
    array(
        '$text' => array('$search' => 'something to search')
    ),
    array (
        'score' => array('$meta' => "textScore")
    )
);

答案 1 :(得分:0)

看起来他们正在推出2.6中的$ text,并弃用文本搜索功能。

您可以在此处参考$ text的更多信息。

http://docs.mongodb.org/manual/reference/operator/query/text/#op._S_text