我正在开发一个连接到PHP服务器以检索一些数据的应用程序。我有一堆文章标题为“如何给狗洗澡”。我需要实现一个搜索功能(服务器端),用户可以键入某些单词并搜索可能与查询匹配的文章。
这是我的实际实现方式:
$texto_buscar = $_POST['texto_buscar'];
$sql = "SELECT `id_seccion`,`id_articulo`,`upvotes`, `downvotes`, `titulo_articulo`,`categorias_articulos`
FROM `indice_articulos`
WHERE `titulo_articulo` like :texto_buscar
ORDER BY `id_articulo` ASC";
$stmt0 = $pdo->prepare($sql);
$stmt0->bindvalue(':texto_buscar','%'.$texto_buscar.'%');
$stmt0->execute();
我看到它不是最佳的,因为如果用户键入一个很长的字符串,LIKE部分将失败。 我一直在搜索,没有找到任何标准,但是我认为这是一个普遍的需求,因此应该有一个标准。那就是我想要的。
请指出正确的方向。
答案 0 :(得分:1)
您可以使用全文搜索,该搜索肯定是经过优化的。
SELECT * FROM table_name WHERE MATCH(titulo_articulo )
AGAINST('search terms' IN BOOLEAN MODE)
编辑:确保已在要应用完全搜索的列上创建了索引。