2013-03-08 54 views
0

我一直在尋找dynamodb作爲它目前唯一的託管完全可擴展的nosql系統,在那裏我可以發現,把db管理的頭痛帶走了。我現在有一個RSS feed索引系統,feed數據被插入到mongodb中,然後sphinxsearch循環遍歷整個數據庫並索引各個字段(以及我使用主+ delta索引,但不需要在此解釋)。php dynamodb - 如何做一個「(key1,key2,key3)」查詢中的hashkey?

隨着獅身人面像,我可以做複雜的查詢和排序,它給了我一個有序的文章ID的數組,一旦我用這些ID查詢mongo,然後重新排序mongo數組以匹配獅身人面像給我的順序。現在

function prepare_for_mongo($keys){ 
    $results_keys_mongo = array(); 
    if(sizeof($keys)>0){ 
     foreach($keys as $key=>$value){ 
      $results_keys_mongo[$key] = new MongoID($value); 
     } 
    } 
    return $results_keys_mongo; 
} 

function sort_mongo_results($documents,$keys){ 
    $documents_sorted = array(); 
    foreach($keys as $key){ 
     $documents_sorted[$key] = $documents[$key]; 
    } 
    return $documents_sorted;  
} 

function retrieve_records($keys) { 
    $m_keys = $this->prepare_for_mongo($keys); 
    if(!empty($m_keys)) { 
     $records = iterator_to_array($this->mongodb->find(array(
      '_id' => array('$in' => $m_keys) 
     ))); 
     $records = $this->sort_mongo_results($records,$keys); 
    } else { 
     return array(); 
    } 
} 

,在我的追求遷移到dynamodb,我怎麼能實現與PHP的dynamodb類似的查詢,我可以通過HASHKEYS列表(唯一的哈希表示文章記錄),然後發電機給我的結果所有包含這些散列鍵的記錄?

回答

0

我找到了解決方案,aws sdk函數爲batch_get_item,然後我可以傳遞一個haskey的數組。

0

我不確定是否存在解決方案。 SphinxSearch似乎是爲了完成這項任務而建立的,同時指向一個SQL數據庫。使用DynamoDB(NoSQL),您可能必須自己編寫相當於SphinxSearch的索引和搜索數據,同時將支持索引存儲在DynamoDB中。這種情況下的「答案」至少是一箇中等規模的發展項目。

相關問題