[ 
https://issues.apache.org/jira/browse/COUCHDB-3280?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15866642#comment-15866642
 ] 

Norbert Nemec commented on COUCHDB-3280:
----------------------------------------

Indeed, your comments capture the idea perfectly.

I don't know much about the implementation of map-reduce vs. Mango. My 
inspiration orginally came from PouchDB where it is already nearly possible to 
use a pouch-find query on top of a design document containing some logic in 
JavaScript. In that case, the implementation effort is mostly smoothing out 
some API details and documenting the feature.

> Computed Indices in Mango Query Server
> --------------------------------------
>
>                 Key: COUCHDB-3280
>                 URL: https://issues.apache.org/jira/browse/COUCHDB-3280
>             Project: CouchDB
>          Issue Type: Wish
>          Components: Mango
>            Reporter: Norbert Nemec
>
> The Mango Query Server aims at offering a simpler alternative to MapReduce 
> queries. As it stands now, it is also fundamentally limited in terms of 
> expressiveness an performance. Indices can be defined only over a plain set 
> of fields with none of the possibilities that a map function offers. 
> Selectors allow powerful combinations, but require to perform much of the 
> computational effort at query time. The $regex operator, for example even 
> contains a warning about this in the documentation.
> My proposal would be to add an alternative way to define indices by 
> explicitly providing a design document map function. The 'fields' argument of 
> such a "computed index" would not have to exist as an actual field in the 
> database, but would be made available as a "computed field" for regular use 
> in subsequent find requests.
> Ultimately, this approach would bridge the gap between the simple-but-limited 
> Mango queries and the powerful-but-unwieldy MapReduce queries. Rather than 
> having to decide between both approaches, developers could start with the 
> simple Mango approach and then just learn one more concept if they need the 
> full power.
> (It is my understanding that the currently recommended approach is to add 
> computed fields to the documents directly at creation time. Though this is a 
> workaround for the limitations of selectors, it does not offer any guarantees 
> for internal consistency of a database and mixes the concerns of content 
> creation with those of retrieval.) 



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)

Reply via email to