文本命令将被删除>应该使用$text query代替


Text command will be removed > should use $text query instead

我刚刚设置了MongoDB与每个组件的最新版本:

  • MongoDB 2.6.2
  • php 5.5.11 vc11
  • php_mon .dll(我在windows上)1.4.3 ts VC11

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

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

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

[conn1]文本命令将在将来的版本中删除。请使用$text查询操作符。

当我刚刚开始使用全文搜索时,我知道我正在使用的全文搜索将被弃用,这让我有点害怕。

甚至官方文档也在使用这些代码(参见例#4)。

那么我应该用什么来代替我的代码呢?我担心如果有一天我在apt-get更新时使用这段代码

我发现了新的$text从2.6,这里是如何做相同的请求与以前的命令:

$m = new MongoClient();
$db = $m->mytestdb;
$collection = $db->items;
$cursor = $collection->find(
    array(
        '$text' => array('$search' => 'something to search')
    ),
    array (
        'score' => array('$meta' => "textScore")
    )
);

似乎他们在2.6中推出了$text,并弃用了文本搜索功能。

你可以在这里引用$text的更多信息。

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