2013-05-23 4 views
2

Если мои вопросы не подходят для этого форума, пожалуйста, дайте мне знать. У меня вопрос о том, как запрашивать некоторые конкретные данные с помощью couchbase (используя представления или нет).Как запросить конкретные данные на couchbase?

Это моя проблема: У меня есть много записей (roughtly 10.000.000), которые имеют коды, как это:

01 03 08 14 20 32 40 45 ...

03 07 09 14 28 30 36 42 43 51 ...

03 04 08 10 30 31 48 49 56 63 ...

Эти записи могут иметь 50 число от 01 до 90. Ни одно из чисел повторить внутри запись, и нет повторных записей со всеми одинаковыми 50 номерами.

Что я хочу - это способ быстро узнать, какие записи имеют номера (например) 03, 06, 20, 34, 38, 50, 55, 79. Комбинация может иметь любые номера (от 01 до 90), с любым количеством чисел (от 01 до 50).

Я знаю, как это сделать с помощью mysql, но я уверен, что это можно сделать с помощью couchbase, я просто не могу понять, как это сделать. Используя mysql, я трачу примерно 20 секунд, и это не подходит. Мне нужно какое-то решение, способное сделать это примерно через 2 секунды или меньше.

Я новый, используя couchbase. Мне очень понравился этот инструмент, и я думаю, что это зависит от задачи. Может кто-нибудь мне помочь?

Если это не вопрос к этому вопросу, пожалуйста, дайте мне знать. И, если возможно, сообщите мне, где я могу найти решение.

Я изучаю couchbase, и любая помощь будет приветствоваться. Спасибо.

PS .: Если у вас есть более подходящее решение, сообщите мне.

+0

Если вы гибки в выборе что-то другое вместо CouchBase (на самом деле это не очень хорошая утилита для него imho), операции набора Redis будут работать отлично. –

ответ

1

Например, вы можете создать представление с единственной функцией карты, как этот

function(doc, meta) { 
    for (var i = 0; i < doc.codes.length; ++i) { 
    emit(doc.codes[i]) 
    } 
} 

Например, вы будете хранить его как _design/test/_view/codes, так что вы можете запросить его с ?keys=[3,6,20,34,38,50,55,79]

Смежные вопросы