如何在 GAE 中实现自动建议(自动完成)功能
Posted
技术标签:
【中文标题】如何在 GAE 中实现自动建议(自动完成)功能【英文标题】:How to implement auto suggestion (auto complete) functionality in GAE 【发布时间】:2012-11-12 17:55:30 【问题描述】:我想在 Google App Engine (GAE/GWT) 中实现自动建议功能。
实现的客户端与 GWT SuggestBox 和 RPC 一起工作得很好。 我的主要问题是实现的服务器端。我尝试了 Google 搜索 API,但似乎总索引数据有 250MB 的限制,并且可以对完整的单词而不是每个单词的一部分执行搜索!
我应该如何处理这个问题?我读到 GAE 不支持 lucene 或 solr。 非常感谢您对此的看法。
【问题讨论】:
【参考方案1】:您可以使用此处描述的这些技术实现基本的文本搜索:http://googlecode.blogspot.com.br/2010/05/google-app-engine-basic-text-search.html
简而言之:
使用content >= yourQuery && content < yourQuery + "\ufffd"
构建查询,其中实体的content
属性可以是字符串或字符串列表。
【讨论】:
【参考方案2】:我采用了这种方法,对我来说效果很好:
将文本拆分为单独的单词。摆脱重复、特殊字符和短词(in、of 和等)。
将此单词列表作为列表属性添加到实体。
通过text range query搜索:listProperty >= wordPart && listProperty < wordPart + "\ufffd"
【讨论】:
这个解决方案在 GAE 上的成本高吗? 存储索引的属性列表是有代价的。查询的成本与任何其他查询相同。以上是关于如何在 GAE 中实现自动建议(自动完成)功能的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Flutter 中实现具有自动完成和搜索等功能的列表