如何在 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 中实现自动建议(自动完成)功能的主要内容,如果未能解决你的问题,请参考以下文章

如何在反应材料-ui自动完成中实现最小字符长度功能

如何在 Flutter 中实现具有自动完成和搜索等功能的列表

如何在工具栏中实现自动完成 google place api - Android

如何在表单上实现城市/州字段的自动完成?

如何在 JQuery 自动完成中开始精确匹配?

在 Draft JS 中实现自动完成,但没有像“@”这样的“触发器”