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