我是Google App Engine的新手,我想验证一下我对某些事情的理解。我正在处理的项目涉及提供一个类型提前自动完成搜索框,例如JQuery自动完成,适用于非常大的数据集。
现在,如果GAE不在图片中,我的一般想法是将数据集存储在NoSQL数据库中,在其前面有一个分布式缓存,并让网页针对缓存运行。
我喜欢GAE的一站式服务方法,但是适用于数百万条目的appengine数据存储区,还是更适合使用独立的数据存储区服务?
appengine附带的memcache似乎只支持使用确切密钥“获取”。我习惯于能够提交类似于“喜欢A%”的查询,该查询将返回以“A”开头的所有项目。换句话说,如果用户在搜索框中键入“A”,我想要一个(合理限制的)以“A”开头的所有项目的列表,而不是与“A”完全匹配的一个条目。 memcache会为此工作吗?如果没有,数据存储是否足够快而没有缓存?
我使用SDK在我的本地计算机上运行原型。一切都很好。当我将代码部署到App Engine时,似乎在自动填充框中输入实际上并不是发送应用程序正在接收的任何内容。在Google Cloud Shell中,当我单击“表单”按钮或转到新URL时,我可以清楚地看到应用程序接收GET和PUT,但是当我输入自动填充框时,没有任何反应。显示的HTML代码。想法?
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>Demo</title>
<link rel="stylesheet" href="http://ajax.googleapis.com/ajax/libs/jqueryui/1.10.1/themes/base/minified/jquery-ui.min.css" type="text/css" />
</head>
<body>
<center>
<form action='demo' method='post' >
<form action='' method='post' >
<p><label>Product Name: </label><input type='text' name='product' value='' class='auto'></p>
<input type='submit' value='Search'/>
</form>
</center>
<script type="text/javascript" src="http://code.jquery.com/jquery-1.9.1.min.js"></script>
<script type="text/javascript" src="http://code.jquery.com/ui/1.10.1/jquery-ui.min.js"></script>
<script type="text/javascript">
$(function() {
//autocomplete
$(".auto").autocomplete({
source: "demo",
minLength: 1
});
});
</script>
</body>
</html>