2012-09-06 102 views
3

我試圖使用Appengine Search API讓用戶查詢多個數據集,每個數據集都有自己的模式。更具體地說:全文搜索是否支持無模式索引?

用戶可以訪問多個數據集。每個數據集都有很多行。每個數據集都有一組列。每列都有一個名稱和一個類型。跨數據集的列可能有名稱衝突,這些衝突可能有不同的類型。

我希望用戶能夠使用一個查詢搜索所有數據集以搜索api。如果我在每個數據集中爲每行創建一個文檔,那麼當您將每個數據集中的所有字段聯合使用時,我懷疑會有超過1000個不同的字段(其中一個字段=一列)。

我該如何解決這個問題?或者我將不得不建立多個索引(每個數據集一個索引)併發出多個請求?這些多個請求可以並行發生嗎?這種方法的缺點/成本是多少?

回答

0

一個好的起點是python documents,因爲底層框架是相同的。說到YMMV這裏作爲Java方面仍然是實驗性的。

並非每個記錄都必須在文檔中具有相同類型。所有你需要的是從document_id到你的對象的方式,所以<tableId>:<objectId>在這裏很好。但是,根據文檔,

對於給定的索引模式,目前限制爲1000個命名字段。

因此,這可能是一個問題給你。如果你不關心列上的匹配,你可以簡單地用一個字符串將你的對象翻譯成一個文檔,然後從那裏進行文本搜索。那麼一切都可以在一個列中。然後,您可以從document_id中獲取<tableId>:<objectId>並從數據存儲中獲取數據。