SearchSyncCommand.php 3.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100
  1. <?php
  2. /**
  3. * 生成云搜数据源
  4. * @author >
  5. */
  6. class SearchSyncCommand extends CConsoleCommand{
  7. public function run($args) {
  8. error_reporting(E_ALL);
  9. ini_set('memory_limit', '512M');
  10. ignore_user_abort(true);
  11. set_time_limit(0);
  12. $criteria = new EMongoCriteria();
  13. // $criteria->status('==',1);
  14. $cursor = RUser::model()->findAll($criteria);
  15. $i=1;
  16. $docs_to_upload = array();
  17. foreach ($cursor as $user) {
  18. $i++;
  19. if($i < 294001){
  20. continue;
  21. }
  22. if($i%100 == 0){
  23. $result = Service::factory('SearchService')->addUser($docs_to_upload);
  24. var_dump($result);
  25. sleep(5);
  26. $docs_to_upload = array();
  27. }
  28. $item = array();
  29. $item['cmd'] = 'ADD';
  30. //添加文档内容
  31. $item["fields"] = array(
  32. 'id'=>(string)$user->_id,
  33. "user_name" => $user->user_name,
  34. "status" => $user->status,
  35. );
  36. $docs_to_upload[] = $item;
  37. }
  38. // // $end_time = strtotime(date('Y-m-d'));
  39. // // $start_time = $end_time - 86400*7;
  40. // $criteria = new EMongoCriteria();
  41. // // $criteria->time('>=',$start_time);
  42. // // $criteria->time('<',$end_time);
  43. // $criteria->status('==',1);
  44. // $cursor = Topic::model()->findAll($criteria);
  45. // $i=1;
  46. // $docs_to_upload = array();
  47. // foreach ($cursor as $topic) {
  48. // $i++;
  49. // if($i%300 == 0){
  50. // $result = Service::factory('SearchService')->addTopic($docs_to_upload);
  51. // var_dump($result);
  52. // sleep(5);
  53. // $docs_to_upload = array();
  54. // }
  55. // $item = array();
  56. // $item['cmd'] = 'update';
  57. // //添加文档内容
  58. // $item["fields"] = array(
  59. // 'id'=>(string)$topic->_id,
  60. // "content" => $topic->content,
  61. // "search_rank" => $topic->search_rank,
  62. // 'time'=>$topic->time
  63. // );
  64. // $docs_to_upload[] = $item;
  65. // }
  66. // $end_time = strtotime(date('Y-m-d'));
  67. // $start_time = $end_time - 86400*7;
  68. // $criteria = new EMongoCriteria();
  69. // $criteria->time('>=',$start_time);
  70. // $criteria->time('<',$end_time);
  71. // $cursor = Message::model()->findAll();
  72. // $i=1;
  73. // $docs_to_upload = array();
  74. // foreach ($cursor as $message) {
  75. // $i++;
  76. // // if($i < 2630000){
  77. // // continue;
  78. // // }
  79. // if($i%5000 == 0){
  80. // $result = Service::factory('SearchService')->addMessage($docs_to_upload);
  81. // var_dump($result);
  82. // sleep(5);
  83. // $docs_to_upload = array();
  84. // }
  85. // $item = array();
  86. // $item['cmd'] = 'update';
  87. // //添加文档内容
  88. // $item["fields"] = array(
  89. // 'id'=>(string)$message->_id,
  90. // "content" => $message->content,
  91. // 'time'=>$message->time,
  92. // 'status'=>$message->status,
  93. // );
  94. // $docs_to_upload[] = $item;
  95. // }
  96. }
  97. }