Google Apps引擎数据存储搜索
问题描述:
我想知道是否有任何方式在数据存储中搜索条目。我有一堆歌曲(标题,艺术家,评级)的条目,但我不知道如何真正搜索他们的歌曲名称和艺术家。我们搜索一个搜索词,并正在查找所有“匹配”条目。但是,我们都将丢失:(任何帮助深表感谢Google Apps引擎数据存储搜索
- 我们正在使用python
EDIT1:当前的代码是没用的,其精确的搜索,但可能会帮助你看到的问题
query = song.gql("SELECT * FROM song WHERE title = searchTerm OR artist = searchTerm")
答
你听起来更为静态数据集(主要是插入,没有或很少更新)工作的乐曲数据。在这种情况下,有GAE技术称为关系索引实体(RIE),它是实现基于关键词的搜索的有效方法。
,但需要一些准备工作,这是简单:
这里您将所有搜索关键字 从每首歌曲(一到一个关系)- 订做特殊RIE实体。
- RIE将它们存储在
StringListProperty
支持这样的搜索:keywords = 'SearchTerm'
(返回true如果列表中的任何keywords
匹配“SearchTerm'`的数值) - 和条件的工作立即加入multipe上述过滤器
- OR条件通过在内存中执行需要更多的工作,从合并和唯一的查询
你可以找到解决方案的工作流程和代码示例的详细信息在我的博客Relation Index Entities with Python for Google Datastore。
您需要定义什么是“匹配”,然后才能提供帮助。简单的索引可能在这里工作,或者可能有必要使用全文搜索,全部取决于您想要过滤的条件。 –
我想尽可能使用全文,但不知道如何通过应用引擎实现该功能 – Aaronf8
您还没有描述过您希望/需要对此数据执行哪种搜索。 –