【发布时间】:2010-11-15 05:47:50
【问题描述】:
我想使用 CouchDB 为我存储一些数据,然后使用 RESTful api 调用来获取我需要的数据。我的数据库称为“test”,我的文档都有类似的结构,看起来像这样(其中 hello_world 是文档 ID):
"hello_world" : {"id":123, "tags":["hello", "world"], "text":"Hello World"}
"foo_bar" :{"id":124, "tags":["foo", "bar"], "text":"Foo Bar"}
我想做的是让我的用户发送一个查询,例如:“给我所有包含‘hello world’的文档。我一直在玩视图,但是看起来他们只允许我将这些值中的一个或多个移动到 map 函数的“关键”部分。这使我能够执行以下操作:
http://localhost:5984/test/_design/search/_view/search_view?key="你好"
但这不允许我让我的用户指定他们的查询字符串。例如,如果他们搜索“hello world”会怎样。我必须做两个查询:一个用于“hello”,一个用于“world”,然后我必须编写一堆 javascript 来组合结果、删除重复项等(YUCK!)。我真正想要的是能够做这样的事情:
http://localhost:5984/test/_design/search/_view/search_view?term="你好世界"
然后在视图 map/reduce 函数中使用参数“hello world”,在 tags 数组中查找所有同时包含“hello”和“world”的文档。使用 CouchDB 甚至可以实现这种事情吗?是否有另一种方法可以在我没有想到的视图中完成此操作?
【问题讨论】:
标签: couchdb