2012-10-23 44 views
2

我一直在使用Google App Engine。我發現搜索子字符串和其他一些操作的問題。 javax.jdo.Query提供了根據需要設置過濾器的選項。有幾個過濾器可用,如包含,不等式運算符,但我找不到符合我需要的任何過濾器。Google App Engine數據存儲實體中的文本子字符串搜索

我無法找到方法如下: 如何查詢過濾器設置爲

  1. 尋找一個子
  2. 搜索正則表達式
  3. 搜索被忽略的情況下

使用JDO可以進行上述3種操作嗎?

回答

1

您是否從App Engine搜索了新的FTA? https://developers.google.com/appengine/docs/java/search/

您必須從數據存儲創建數據索引,然後才能使用一些通配符在索引文檔上執行搜索。

但是,看看這個項目是爲實驗的時刻。

編輯:

的其他解決方案是使用與Whoosh在App Engine上Backends Service。然後你創建一個webservice。並用urlfetch從你的前端調用你的後端。

+0

感謝您的鏈接。將與它保持聯繫。但是由於它是實驗性的,我現在不會使用它。 – abhijitsinghh

+0

另一種解決方案是將Whoosh與後端一起使用。 – sahid

2

不,這些在App Engine數據存儲中不可行,因爲它們不能滿足索引。 App Engine數據存儲不執行需要掃描所有實體的查詢。

對於第一個選項,全文搜索可能是你想要的。第二,沒有好的解決方案。最後,您只需在數據存儲區中存儲字符串的較低或較高版本來進行搜索。

+2

請注意,搜索API完全不區分大小寫,因此它將解決1和3. –

+0

如何使用全文搜索搜索子字符串?假設我有一個名爲'name'的'Document',其值爲「banana」。如果我只搜索「ana」,如何查詢該文檔? – Korneel

+0

@Korneel除非您正在搜索的字符串是文檔中單詞的詞幹版本,否則不能這樣做。你爲什麼想做這個? –

相關問題