Tulis tugas berjadual untuk bersiap sedia untuk melawat alamat dengan kerap bagi melengkapkan fungsi pemadanan jenama.
Menggunakan segmentasi perkataan yang gagap untuk mengasingkan tajuk produk
Tiada masalah berjalan secara tempatan. Apabila berjalan dalam talian, jika hanya satu produk ditemui, tidak ada masalah. Berbilang entri secara automatik akan melompat ke "ERROR_PAGE" dalam fail konfigurasi Tiada rekod dalam fail Log. Sekarang saya tidak tahu bagaimana untuk menyemak punca masalah ini dan tidak dapat mencari penyelesaian.
Ia sepatutnya masalah yang disebabkan oleh gelung, tetapi saya tidak tahu di mana masalahnya?
Dilampirkan kod yang berkaitan:
$quan_lists = M("Quan")->field('id,title')->where(array("fromtype" => array("gt", 0),"addtime" => array("gt", $limit_time)))->limit(20)->order("id desc")->select();
$productLogic = tkD("Product", "Logic");
$searchLogic = tkD('Search', 'Logic');
if(!empty($quan_lists)) {
foreach($quan_lists as $quan) {
//分词结果
$aTags = $productLogic->jieba($quan['title']);
if (empty($aTags)) {
continue;
}
$like_zh_map = $like_en_map = $condition = $map = array();
foreach($aTags as $tag) {
if(preg_match("/^[0-9a-zA-Z\s]+$/", $tag)) {
$like_en_map[] = "{$tag}%";
} else {
$like_zh_map[] = "{$tag}%";
}
}
if(count($like_zh_map) > 0) {
$condition['zh_name'] = array('like', $like_zh_map, 'OR');
}
if(count($like_en_map) > 0) {
$condition['en_name'] = array('like', $like_en_map, 'OR');
}
if(count($like_zh_map) > 0 && count($like_en_map) > 0) {
$condition['_logic'] = 'or';
}
$map['_complex'] = $condition;
$map['status'] = 1;
$aDatas = M('Brand')->field('id,zh_name,en_name')->where($map)->find();
if(empty($aDatas)) {
continue;
} else {
M("Quan")->where(array("id" => $quan['id']))->save(array("brand_id" => intval($aDatas["id"])));
$searchLogic->searchupdate(2, $quan['id']); //更新搜索引擎
}
}
}
public function jieba($title)
{
if (empty($title)) {
return false;
}
ini_set('memory_limit', '200M');//吃内存
import('Vendor/jieba/src/vendor/multi-array/MultiArray', '', '.php');
import('Vendor/jieba/src/vendor/multi-array/Factory/MultiArrayFactory', '', '.php');
import('Vendor/jieba/src/class/Jieba', '', '.php');
import('Vendor/jieba/src/class/Finalseg', '', '.php');
\Fukuball\Jieba\Jieba::init(array('dict' => 'small'));
\Fukuball\Jieba\Finalseg::init();
$aSeglist = \Fukuball\Jieba\Jieba::cut($title, false);
if ($aSeglist) {
$aTags = array();
foreach ($aSeglist as $str) {
if (is_numeric($str)) {
continue;
} elseif (mb_strlen($str, 'utf8') < 2) {
continue;
} else {
$aTags[] = $str;
}
}
return $aTags;
} else {
return false;
}
}
Apabila membahagikan perkataan:
ini_set('memory_limit', '200M')
Kod ini nampaknya mempunyai beberapa masalah