Я хотел бы использовать CouchDB для хранения некоторых данных для меня, а затем использовать вызовы RESTful api для получения необходимых мне данных. Моя база данных называется "test", и мои документы имеют сходную структуру и выглядят примерно так (где hello_world - это идентификатор документа):
"hello_world" : {"id":123, "tags":["hello", "world"], "text":"Hello World"}
"foo_bar" :{"id":124, "tags":["foo", "bar"], "text":"Foo Bar"}
Я хочу, чтобы мои пользователи отправили запрос, например: "Дайте мне все документы, содержащие слова" hello world ", например. Я играл с просмотрами, но похоже, что они позволят мне переместить одно или несколько из этих значений в" ключевую" часть функции карты. Это дает мне возможность сделать что-то вроде этого:
http://localhost:5984/test/_design/search/_view/search_view?key= "hello"
Но это не позволяет мне указывать свою строку запроса. Например, что, если они искали "привет мир". Я должен был бы выполнить два запроса: один для "привет" и один для "мира", тогда мне пришлось бы написать кучу javascript, чтобы объединить результаты, удалить дубликаты и т.д. (YUCK!). Я действительно хочу, чтобы иметь возможность сделать что-то вроде этого:
http://localhost:5984/test/_design/search/_view/search_view?term= "hello world"
Затем используйте параметр "hello world" в представлении map/reduce функции, чтобы найти все документы, содержащие как "привет", так и "мир" в массиве тегов. Возможно ли это с CouchDB? Есть ли другой способ сделать это в представлении, о котором я не думаю?