2009-08-13 3 views
2

Я новичок в CouchDB, и я знаю, что мой образ мышления, вероятно, все еще слишком много в реляционной БД сфере, но здесь идет:CouchDB - Запросы с Params

Оказывается, что запрос на кушетке все это делается с помощью Views. Я читал, что временные взгляды очень неэффективны и их следует избегать в производстве.

Таким образом, мой вопрос заключается в том, как бы эффективный запрос с параметрами (поскольку представления их не принимают). Например, если бы я использовал Couch для управления сайтом блога, мне пришлось бы создать новое представление для каждого сообщения, эквивалентного «выбрать пост из сообщений, где id = 1».

Я понимаю, что я могу использовать lucene вместе с запросом, чтобы выполнить полный текстовый поиск по результатам, но это действительно полезно только для текстового контента, а не для чисел.

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

Cheers, Крис.

ответ

3

Взгляды действительно принимают параметры URL, ключ, который вы ищете. Вы даже можете ограничить количество строк, которые вы получаете и сортируете.

Ваши взгляды могут быть проиндексированы произвольными ключами JSON. Это означает, что вы можете создать представление, которое испускает такие документы, [имя пользователя docid] => doc. Затем вы можете запросить этот вид с помощью http://url/to/view?key=[username docid].

Вы можете создать представление, которое испускает [имя пользователя типа date] => doc. Теперь вы можете получить все документы определенного времени между определенной датой (используя параметры startKey и endKey url).

Ваш пример блога - это тот, который отлично подходит для CouchDB. На самом деле я считаю, что это пример в предстоящей книге CouchDB от O'reilly.

При этом некоторые виды запросов нелегко обрабатываются только CouchDB. couchdb-lucene может помочь здесь. Не думайте, что это только полезно для полнотекстового поиска. Я использую его для эффективного выполнения общих сложных запросов к базе данных.

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