【问题标题】:Get the Records which contains a word (Case insensitive) in Gql?在 Gql 中获取包含单词(不区分大小写)的记录?
【发布时间】:2011-10-23 01:59:24
【问题描述】:

是否可以编写单个 Gql 查询来检索包含搜索字符串的记录?

数据存储包含以下记录:

阿达克斯 波峰 地址 德雷斯特 扶手 混合

我需要获取包含单词“Rest”(不区分大小写)的记录

【问题讨论】:

  • @Wooble Nope - 这个用户也想要全文。
  • 啊,对。在“扶手”中找到“休息”将是……不平凡的。

标签: python google-app-engine gql gqlquery


【解决方案1】:

您可以使用SearchableModel获得一些全文搜索功能

【讨论】:

    【解决方案2】:

    AE 还不支持全文搜索,它在roadmap 上,所以我们可以期待它。

    如果您只是想以不区分大小写的方式匹配单个单词,您可以将所有单词存储在 ListProperty 中,并确保它们始终以小写形式存储。这样您就可以轻松地以不区分大小写的方式查询它们。

    【讨论】:

    • @chiris 这是一个正在运行的应用程序。所以我无法在数据存储中进行任何更改。我需要添加一个新模块来搜索数据存储中已有的产品。
    • 您可能想查看自定义属性的 aetycoon 示例,特别是 TransformProperty,您可以使用它来基于现有属性添加第二个属性。您必须重新保存每个实体,但一旦到位,您将拥有一个可用于搜索的可用道具。
    • @chiris 感谢您的回复。但即使我需要更改现有数据存储模型是吗? (将所有现有数据以大写或小写形式更改为此属性)。是否可以进行编程?
    • 如果您只想更改所有当前数据,请查看使用mapper api in mapreduce 如果您需要保留现有数据,您可以添加 Derived/Transform 属性来存储小写版本。跨度>
    • 好吧。我添加了所有产品的规范化文本(全部小写)。然后我还需要获取所有记录并在每个记录中搜索一个单词。是吗?
    猜你喜欢
    • 2012-02-18
    • 1970-01-01
    • 2023-04-02
    • 2015-01-22
    • 2015-08-30
    • 2011-10-20
    • 2012-02-03
    • 2013-01-16
    相关资源
    最近更新 更多