鍍金池/ 問答/PHP  數(shù)據(jù)庫(kù)/ 在搜索時(shí)輸入關(guān)鍵詞,如何提高下拉聯(lián)想的速度?

在搜索時(shí)輸入關(guān)鍵詞,如何提高下拉聯(lián)想的速度?

當(dāng)在input里輸入單詞時(shí),自動(dòng)下拉出相關(guān)的關(guān)鍵詞。
但是有時(shí)輸入很快的時(shí)候,下拉提供的相關(guān)關(guān)鍵詞就來不及反應(yīng)。

有沒有較好的解決辦法?

ps:關(guān)鍵詞存在mysql,也設(shè)置了索引。
獲取的時(shí)候用的$.post

回答
編輯回答
不討囍

1.熱門詞對(duì)應(yīng)的數(shù)據(jù)或者搜索歷史對(duì)應(yīng)的數(shù)據(jù)緩存到redis中
2.使用sphinx

2017年11月14日 03:37
編輯回答
局外人

想提高下拉的速度,我覺得需要優(yōu)化的點(diǎn),當(dāng)然.這不能代表所有.上面也提到了,所有的歷史記錄可以存到redis中,那為什么不粗暴一點(diǎn),將整個(gè)搜索的關(guān)鍵詞存進(jìn)去了.當(dāng)遇到?jīng)]有的關(guān)鍵詞時(shí),在去實(shí)時(shí)搜索.
第二,是否應(yīng)該考慮一下代碼緩存.來提高代碼執(zhí)行的效率.
第三,如果不是特殊情況,要考慮到是否需要實(shí)時(shí)來響應(yīng).畢竟數(shù)據(jù)庫(kù)的瓶頸在那里.這個(gè)時(shí)候,redis的作用就凸顯出來了.
第四.樓上也提到了,sphinx這個(gè)東東,我就不提了,實(shí)際上有很多的搜索索引.具體,請(qǐng)看一下php的官網(wǎng)推薦的
以上亂寫一同,不同之處,請(qǐng)指出

2017年6月7日 17:10
編輯回答
大濕胸

是想做到和百度的搜索差不多吧! 那就要用 中文分詞 配合 sphinx 來做吧!

2017年9月12日 07:28
編輯回答
詆毀你

用Autocomplete,設(shè)置一些聯(lián)想關(guān)鍵字。

<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>jQuery UI 自動(dòng)完成(Autocomplete) - 默認(rèn)功能</title>
<link rel="stylesheet" >
<script src="http://code.jquery.com/jquery-1.9.1.js"></script>
<script src="http://code.jquery.com/ui/1.10.4/jquery-ui.js"></script>
<link rel="stylesheet" href="http://jqueryui.com/resources...;>
<script>
$(function() {

var availableTags = [
  "ActionScript",
  "AppleScript",
  "Asp",
  "BASIC",
  "C",
  "C++",
  "Clojure",
  "COBOL",
  "ColdFusion",
  "Erlang",
  "Fortran",
  "Groovy",
  "Haskell",
  "Java",
  "JavaScript",
  "Lisp",
  "Perl",
  "PHP",
  "Python",
  "Ruby",
  "Scala",
  "Scheme"
];
$( "#tags" ).autocomplete({
  source: availableTags
});

});
</script>
</head>
<body>

<div class="ui-widget">
<label for="tags">標(biāo)簽:</label>
<input id="tags">
</div>

</body>
</html>

2017年3月7日 17:43