У меня проблемы с полнотекстовым поиском с использованием CodeIgniter. здесь у меня есть одна таблица с динамическими строками и столбцами, когда я ищу поле ввода в одной строке, используя полнотекстовый индекс, очень медленно. здесь уже установлены следующие значения в качестве механизма БД в качестве MYISAM и столбец таблицы в качестве FULLTEXT INDEX. Я хочу, чтобы данные в поле ввода были очень быстрыми. вот я приложил то, что устал. пожалуйста, проверьте это и дайте мне знать.
public function product_autocomplete()
{
$name_startsWith = $_POST['name_startsWith'];
$type = $_POST['type'];
$row_num = $_POST['row_num'];
$this->db->like('item_number', $name_startsWith);
$query = $this->db->select('item_id,item_number,name,tax_included,cost_price,categoryid,unit_price,supplier_id,quantity_received')
->from('bgs_items')
->where('MATCH (bgs_items.item_number) AGAINST ("'. $name_startsWith .'")', NULL, false)
->limit(10)
->get();
$data = array();
foreach ($query->result_array() as $row)
{
$name = $row['item_number']."-".$row['name'].'|'.$row['name'].'|'.$row['tax_included'].'|'.$row['cost_price'].'|'.$row['categoryid'].'|'.$row['unit_price'].'|'.$row['supplier_id'].'|'.$row['quantity_received'].'|'.$row['item_number'].'|'.$row['item_id'].'|'.$row['supplier_id'].'|'.$row_num;
array_push($data, $name);
}
echo json_encode($data);
}
Пожалуйста, попробуйте использовать ниже запрос
public function product_autocomplete()
{
$name_startsWith = $_POST['name_startsWith'];
$type = $_POST['type'];
$row_num = $_POST['row_num'];
$query = $this->db->select('item_id,item_number,name,tax_included,cost_price,categoryid,unit_price,supplier_id,quantity_received')
->from('bgs_items')
->where('MATCH (bgs_items.item_number) AGAINST ("'. $name_startsWith .'")', NULL, false)
->limit(10)
->get();
$data = array();
foreach ($query->result_array() as $row)
{
$name = $row['item_number']."-".$row['name'].'|'.$row['name'].'|'.$row['tax_included'].'|'.$row['cost_price'].'|'.$row['categoryid'].'|'.$row['unit_price'].'|'.$row['supplier_id'].'|'.$row['quantity_received'].'|'.$row['item_number'].'|'.$row['item_id'].'|'.$row['supplier_id'].'|'.$row_num;
array_push($data, $name);
}
echo json_encode($data);
}
Других решений пока нет …