Как я выполняю параметризированный запрос на CouchDB

Я использовал Комодо , и это довольно хорошо. Я использую TextMate теперь.

17
задан Mike Farmer 29 July 2009 в 21:11
поделиться

2 ответа

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

http://github.com/rnewson/couchdb-lucene/tree/master

20
ответ дан 30 November 2019 в 13:34
поделиться

Технически это возможно, если вы отправляете для каждого документа каждый набор powerset тегов документа в качестве ключа. Элемент набора ключей должен быть упорядочен, и ваш запрос должен также запрашивать упорядоченные теги.

function map(doc) {
  function powerset(array) { ... }

  powerset_of_tags = powerset(doc.tags)
  for(i in powerset_of_tags) {
    emit(powerset_of_tags[i], doc);
  }
}

для документа {"hello_world": {"id": 123, "tags": ["hello", "world"], "text": "Hello World"} это выдаст:

{ key: [], doc: ... }
{ key: ['hello'], doc: ... }
{ key: ['world'], doc: ... }
{ key: ['hello', 'world'], doc: ... }

Хотя это возможно, я бы посчитал это довольно хитрым решением. Я не хочу представлять себе использование диска представлением для большего количества тегов. Я ожидаю, что количество выданных ключей вырастет как 2 ^ n.

2
ответ дан 30 November 2019 в 13:34
поделиться