2010-09-17 72 views
0

這是我的代碼:如何獲取其中包含「SSS」,而不是「=」,在信息

class Marker_latlng(db.Model): 
    geo_pt = db.GeoPtProperty() 

class Marker_info(db.Model): 
    info = db.StringProperty() 
    marker_latlng =db.ReferenceProperty(Marker_latlng) 

q = Marker_info.all() 
q.filter("info =", "sss") 

,但如何獲得包含「SSS」,而不是「=」的信息,

有一個像「包含」的方法?

+0

可能的重複:http://stackoverflow.com/questions/3172292/gql-find-all-entities-that-c​​ontain-a-substring – geoffspear 2010-09-17 03:18:12

回答

1

而不是使用一個StringProperty的,你可以使用一個StringListProperty。在保存信息字符串之前,將它分成包含每個單詞的字符串列表。

然後,當您使用q.filter("info =", "sss")時,它將匹配任何包含"sss"的單詞的項目。

對於更一般的事情,您可以查看應用引擎全文搜索。

+1

請注意,無論如何,您將被限制爲關鍵字搜索或關鍵字前綴搜索;沒有好的方法來進行真正的子字符串搜索。 – geoffspear 2010-09-17 10:44:50

相關問題