SimpleDB - Como selecionar onde algum atributo corresponde a uma determinada string?

StackOverflow https://stackoverflow.com/questions/2255214

  •  20-09-2019
  •  | 
  •  

Pergunta

Estou projetando o layout e o uso de um aplicativo Amazon SimpleDB. Os documentos do SimpleDB fornecem várias consultas de exemplo: aqui está uma: referência: http://developer.amazonwebservices.com/connect/entry.jspa?externalid=1231

Selecione * do MyDomain, onde title = 'The Right Stuff'

Eu gostaria de usar algo como:
Selecione * do myDomain onde * = 'as coisas certas'

Para que eu possa pesquisar todos os atributos por 'as coisas certas'.

Sei que poderia criar um banco de dados e testar isso, mas agora não estou codificando, apenas planejando, por isso, se houver alguém por aí que conhece a solução para isso, então obrigado.

Existe um banco de dados público por aí que podemos consultar para testar?

--Tom

Foi útil?

Solução

Não há como realizar o tipo de consulta que você está perguntando. Cada valor de atributo no SimpleDB é indexado de acordo com o nome do atributo com o qual está associado. Em outras palavras, há um índice separado para cada nome de atributo. Como resultado, mesmo que você pudesse fazê -lo, seria necessário examinar todos os índices no domínio e seria proibitivamente lento na implementação atual do SimpleDB.

Você pode simular isso por si mesmo, no entanto, com o custo de duplicar todos os seus dados e restringir seu aplicativo a 128 atributos por item, em vez de 256. Você faria isso criando um atributo multi-valido adicional em todos os itens para manter o valores de todos os outros atributos nesse item. Em seguida, você constrói suas consultas especiais contra esse atributo (você precisaria usar o mesmo nome para esse atributo em todos os itens).

Eu não recomendo essa abordagem.

Não existem bancos de dados oficiais simplificados públicos disponíveis na AWS, mas existem alguns clones compatíveis com API por aí:M/dB é um.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top