4

基本上我有一个酒店搜索引擎,在网站顶部有一个必须显示自动完成结果的搜索字段。结果可以是酒店或位置(城市)。类似于 Facebook 自动完成功能(搜索可以是人员、页面……)

我从基本的地理名称 jsuery 示例开始:http: //jqueryui.com/autocomplete/#remote-jsonp

但我不知道如何为酒店使用我自己的 JSON api。我知道我应该将我的 JSON 酒店与 geonames 中的酒店合并?任何人都可以告诉我如何做到这一点?

4

1 回答 1

9

最简单的高级代码应如下所示,其中 requestFromSource1 是您请求地理名称的地方, requestFromSource2 是您查询自己的自动完成引擎的地方。

  $( "#city" ).autocomplete({
        source: function( request, response ) {
    var resultFromSource1 = null;
    var resultFromSource2 = null;
    var agregateResults = function(){
        if( resultFromSource1 && resultFromSource2){
            var result = resultFromSource1.concat(resultFromSource2);
            response(result);
        }
    }
    requestFromSource1(function( result ){
        resultFromSource1 = result;
        agregateResults();
    });
    requestFromSource2(function( result ){
        resultFromSource2 = result;
        agregateResults();
    });
        }
    });
});

更复杂的情况是通过相关性得分合并。恐怕在你的情况下这个注释是可能的。

于 2012-11-18T19:19:07.957 回答