我使用 Python 和 Django 的组合以及 JS 库 Bloodhound 和 typeahead 在网站上形成增量搜索框。到目前为止,我在 js 中包含了远程 Solr 服务器的 URL,以便 js 可以在其上触发查询,以在用户键入时填充搜索框。我想到的事情是,如果用户查看源代码和 JS 脚本,我可能不希望用户看到此 Solr URL。是否有可能做到这一点?也许有更好的方法来实现这一点...我复制了下面的相关代码,您可以看到 Solr 服务器的 URL 在脚本中可见:
// construct suggestion engine
var engine = new Bloodhound({
datumTokenizer: function (datum) {
return Bloodhound.tokenizers.whitespace(datum.title);
},
queryTokenizer: Bloodhound.tokenizers.whitespace,
remote: {
url: 'http://localhost:8983/solr/document_core/select?wt=json&q=%QUERY',
wildcard: '%QUERY',
filter: function (data) {
return $.map(data.response.docs, function (suggestionSet) {
return{
title : suggestionSet.title,
category : suggestionSet.category
}
});
}
}
});
非常感谢您的帮助!
最佳答案
您无法在客户端隐藏任何内容。从服务器端访问Solr,检查用户是否有权进行查询;然后将结果转发给客户端(如果您需要的话)。
关于javascript - 在 JavaScript 中向用户隐藏 Solr 服务器 URL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32649481/