【发布时间】:2014-04-15 12:50:04
【问题描述】:
我需要使用全文索引进行搜索,并且此代码有效:
$cursor=$collection->find(array('$text'=>(array('$search'=>$s))),
array("score"=> array('$meta'=>"textScore"))
);
我尝试使用以下命令对光标进行排序:
$cursor =$cursor->sort(array("score"=>1));
当我尝试阅读时
var_dump($cursor->getNext());
我给了我这个错误 未捕获的异常“MongoCursorException”,带有消息“localhost:27017:无法规范化查询:BadValue 不能对 $meta 投影进行非 $meta 排序”
有什么想法吗?
【问题讨论】:
-
尝试从 find() 中消除“分数”搜索条件。很可能它不允许查找和排序相同的键值。
-
但是如果我从 db.collection.find() 的第二个字段中消除,我如何要求对基于搜索的字段进行排序,我如何保存构建为的分数元数据?我试图消除,但排序不起作用我应该怎么写?谢谢
-
仅供参考:您的数组周围有额外的 () ('$search'=>$s)。有关 sort() 解决方案,请参阅下面的答案
标签: php mongodb sorting full-text-search