主題: [其他] [問題]關鍵字搜尋的程式開發 [打印本頁]
發表人:
ROACH 時間: 2014-1-28 10:24 AM 主題: [問題]關鍵字搜尋的程式開發
問一下像Google或Yahoo的搜尋引擎的關鍵字預載
比方搜尋的時候下面會跑出最接近的搜尋結果
嗯~看來大家只要Twed2k掛掉都會去Google搜尋
這個要怎做呢??下面的框框用jquery寫的對吧
有範例嗎?
那打一個字的時候就去資料庫撈一次嗎?
還是打第一個字的時候就先把符合的關鍵字全部撈到session裡面
第二個關鍵字再從Session抓出來呢?
再問一個問題一般關鍵字搜尋在SQL語法中要怎寫
以前我都是這樣做
SELECT * FROM table where stkey like '%serkey%'.
雖然可以找到關鍵字的資料
但卻不能用『多關鍵字』之類的搜尋方式,還是有什麼其他方式?
發表人:
daidai 時間: 2014-1-28 06:39 PM
jquery ui 有 自動完成 套件可以使用
http://jqueryui.com/autocomplete/
jquery 事件
http://api.jquery.com/change/
大概的做法如下,請參考看看囉
$(function() {
var maxRes = 15; // 定義資料最大長度
var inputOldValue = null; // 定義欄位舊值
$('#文字輸入欄ID').change(function(){ // 變更事件
if ($(this).val() != inputOldValue) // 判斷 目前欄位值是否等於舊的值,如果不同就取得新的資料
{
inputOldValue = $(this).val();
$("#文字輸入欄ID").autocomplete({
source : function(request, response) { // 資料來源
$.ajax({ // jquery ajax
url : "xxx.php", // 處理的網址
dataType : "json", // 返回內容的格式
minLength : 1, // 最小長度
data : { // 參數
max : maxRes, // 資料最大長度
q : $("#文字輸入欄ID").val()// 文字輸入欄值
},
success : function(data) {
$("#文字輸入欄ID").removeClass("ac_loading");
response($.map(data, function(item) {
return {
label : item.obj_name + " (ID:"
+ item.obj_id + ")",
value : item.obj_id + ":"
+ item.obj_name
};
}));
}
});
},
search : function() {
$(this).addClass('ac_loading');
},
select : function(event, ui) {
var strArr = ui.item.value.split(':');
$(this).val(strArr[1]);
$("#itemId").val(strArr[0]);
return false;
},
open : function() {
$(this).removeClass("ui-corner-all").addClass("ui-corner-top");
},
close : function() {
$(this).removeClass("ui-corner-top").addClass("ui-corner-all");
}
}
});
});
});
Server及瀏覽器端做關鍵字的解析,可以有很多種變化應用@@...
SQL 可以試試
SELECT * FROM table where (stkey like '%serkey%' OR stkey like '%serkey1%' OR stkey like '%serkey2%')
[daidai 在 2014-1-28 06:48 PM 作了最後編輯]
發表人:
cnp 時間: 2014-1-31 12:28 AM
感覺Server的Cache要做好, 不然一直query db負擔會蠻重的@@
發表人:
kevenyang 時間: 2014-5-19 03:37 PM
SQL的語法真的要多參考別人的才能精進!
發表人:
kevenyang 時間: 2014-5-19 03:39 PM
SQL的語法真的要多參考別人的才能精進!
歡迎光臨 TWed2k (http://twed2k.org/) |
Powered by Discuz! 4.1.0 |