我想使用jquery php和mysql即时搜索我的网站。
以前我曾经在.searchbox
上从keyup
获取文本,并通过ajax将请求发送到php。
PHP
$query="Select from names where concat(fname," ",lname) Like '$search%' "
这样可以正常工作。但我听说Fulltext比LIKE快了很多时间。但它只有在有人写一个全名时才会起作用。 因此无法自动完成搜索。我想知道是否有任何替代我的上述代码,使用全文或任何其他方法更快。
答案 0 :(得分:1)
如果您正在寻找一个强大的搜索系统,那么您需要查看Apache Lucene。从我在几个论坛上看到的内容来看,MySQL FullText与Apache Lucene相比真的很慢。您还可以查看Apache Solr(基于Apache Lucene)。
如果您正在尝试构建自动填充字段,那么您需要查看: - Twitter的Typeahead - jQuery UI
在这里,您可以找到自动填充字段的好教程: http://www.pontikis.net/blog/jquery-ui-autocomplete-step-by-step
答案 1 :(得分:0)
我建议
PHP中的
$search_name=explode(" ", addslashes($search));
fname = $search_name[0];
if(!empty($search_name[1])) {
$lname = $search_name[1];
$sql_add = "(lname LIKE '$lname%') OR";
} else $sql_add="";
在sql中
"Select from names where $sql_add fname LIKE '$fname%'"
确实可能会有很多结果,但由于sql条件的原因,某些结果会丢失。