2016-04-21 67 views
1

我有一個使用Bootstrap,jQuery,Typeahead.js和Azure Search的應用程序。我正在嘗試使用suggestions功能。在試圖做到這一點,我有以下幾點:通過Typeahead.js提供建議

var engine = new Bloodhound({ 
    datumTokenizer: Bloodhound.tokenizers.whitespace, 
    queryTokenizer: Bloodhound.tokenizers.whitespace, 
    remote: { 
    url: 'https://my-app.search.windows.net/indexes/my-index/docs/suggest?api-version=2015-02-28', 
    prepare: function (settings) { 
     settings.type = 'POST'; 
     settings.contentType = 'application/json; charset=UTF-8'; 
     settings.data = { search: query, suggesterName: 'mySuggestions', top: 10 };               
     return settings; 
    } 
    } 
}); 

$('#searchField').typeahead([{ 
    minLength: 5, 
    name: 'suggestions', 
    source: engine 
}]); 

當我輸入文本searchField,我從來沒有看到請求發射了在提琴手Azure的搜索服務。同時,在控制檯窗口中看不到任何錯誤。我究竟做錯了什麼?

回答

0

幾件事情對我來說似乎對我來說。 首先這樣的:

$('#searchField').typeahead([{ 
    minLength: 5, 
    name: 'suggestions', 
    source: engine 
}]); 

可能需要更多這樣的:

$('.typeahead').typeahead(null,{ 
    minLength: 5, 
    source: engine 
}); 

另外在你的引擎功能的準備需要包括「查詢」 ARG。

var engine = new Bloodhound({ 
    datumTokenizer: Bloodhound.tokenizers.whitespace, 
    queryTokenizer: Bloodhound.tokenizers.whitespace, 
    remote: { 
    url: 'https://my-app.search.windows.net/indexes/my-index/docs/suggest?api-version=2015-02-28', 
    prepare: function (query,settings) { 
     settings.type = 'POST'; 
     settings.contentType = 'application/json; charset=UTF-8'; 
     settings.data = { search: query, suggesterName: 'mySuggestions', top: 10 };               
     return settings; 
    } 
    } 
}); 

你可以看到一個工作小提琴here

+0

非常感謝您的幫助! – user687554