As visualizações Map/Reduce são uma parte importante do Couchbase 2.0 e entender como consultá-las também é importante. Nossa documentação é excelente e pode ser encontrada aqui: http://www.couchbase.com/docs/couchbase-manual-2.0/couchbase-views.html

Uma das sutilezas é entender a ordenação de letras da Unicode Collation, que é diferente da Byte Order (como ASCII), com a qual estamos mais acostumados, pois ela é usada na maioria das linguagens de programação para ordenar strings por meio de comparações de strings.

Ordem de bytes (como ASCII)

123456890 < AZ < az

Unicode Collation (opção padrão)

123456790 < aAbBcCdDeEfFgGhH...

Observe que as letras são agrupadas, portanto, minúsculas e depois maiúsculas da mesma letra, em vez de um intervalo de todas as maiúsculas e depois um intervalo de todas as minúsculas.

Além disso, em outros idiomas, os caracteres acentuados seguem um princípio semelhante, assim:

a < á < A < Á < b
 

Observe que todos os caracteres "a" e as variantes acentuadas ocorrer antes de A maiúsculo e suas variantes, que também ocorrem antes de qualquer caractere "b". 

Exemplo de pedido

Na ordenação por ordem de bytes (como ASCII), as seguintes chaves indexadas seriam ordenadas nesta ordem:

"ABC123" < "ABC223" < "abc123" < "abc223" < "abcd23" < "bbc123" < "bbcd23"

No entanto, na Colação Unicode usada nas visualizações do Couchbase, essa é a ordem em que elas realmente ocorreriam:

"abc123" < "ABC123" < "abc223" < "ABC223" < "abcd23" < "bbc123" < "bbcd23"

Portanto, ao determinar sua tecla de início e chave final Para as cordas, é importante conhecer esse pedido! 

Exemplos

Por exemplo, usando o banco de dados de amostra de cerveja que é empacotado com o Couchbase 2.0, e queria consultar Breweries by_name:

Cervejarias que começam com Y maiúsculo:
tecla de início="Y"&chave final="z"

Retornará apenas aqueles que começam com Y maiúsculo!

Cervejarias que começam com y minúsculo ou Y maiúsculo:
tecla de início="y"&chave final="z"

Acontece que todos os que estão em letras maiúsculas são retornados apenas por causa dos dados fornecidos, mas incluiriam os que estão em letras minúsculas!

Cervejarias que começam apenas com y minúsculo:
tecla de início="y"&chave final="Y"

Não deve retornar nenhum resultado com os dados fornecidos, porque todos eles são Y maiúsculos!

Este último é provavelmente o menos intuitivo se você vier de uma mentalidade ASCII de ordem de bytes! Espero que isso seja útil para quem está fazendo consultas de intervalo!

@scalabl3

PS. Se estiver interessado no tópico Unicode Collation, você pode obter mais informações sobre ele nestes URLs:

http://www.unicode.org/reports/tr10/

http://userguide.icu-project.org/collation/customization#TOC-Default-Options

Autor

Postado por A equipe do Couchbase

Jennifer Garcia é gerente sênior de Web na Couchbase Inc. Como gerente do site, Jennifer tem a responsabilidade geral pelas propriedades do site, incluindo design, implementação, conteúdo e desempenho.

Um comentário

  1. Matt Ingenthron janeiro 20, 2013 em 3:25 pm

    Observe que o final da tabela de agrupamento latino unicode é u02ad. É bom saber disso ao pesquisar até o fim. Às vezes, você pode ver uefff, que funciona, mas não é tecnicamente correto.

Deixar uma resposta