我刚刚设置了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