当前位置:  开发笔记 > 编程语言 > 正文

如何在CouchDB上执行参数化查询

如何解决《如何在CouchDB上执行参数化查询》经验,为你挑选了1个好方法。

我想使用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函数的"key"部分.这使我能够做到这样的事情:

http:// localhost:5984/test/_design/search/_view/search_view?key = "hello"

但这不允许我让我的用户指定他们的查询字符串.例如,如果他们搜索"hello world"怎么办?我必须做两个查询:一个用于"hello",一个用于"world"然后我必须编写一堆javascript来组合结果,删除重复项等(YUCK!).我真正想要的是能够做这样的事情:

http:// localhost:5984/test/_design/search/_view/search_view?term = "hello world"

然后在views map/reduce函数中使用参数"hello world"来查找tags数组中同时包含"hello"和"world"的所有文档.CouchDB甚至可以做到这一点吗?还有另一种方法可以在我没想到的视图中实现这一目标吗?



1> Jan Lehnardt..:

CouchDB视图不支持分面搜索或全文搜索或结果交集.couchdb-lucene插件可以让你做所有这些事情.

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


他是该项目的开发人员之一 - "你做不到,但这个项目会让你." 这是一个非常好的答案.
推荐阅读
mobiledu2402851373
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有