Ah, had not thought about that thanks and thanks for the tip! Mike
-----Original Message----- From: Robert Newson [mailto:[email protected]] Sent: 16 May 2012 22:28 To: [email protected] Subject: Re: couch-lucene hwo to refernce elements in a complex document? This just means couchdb-lucene has encountered a document that doesn't have a "headers" element. In general you should add guard clauses anyway; function(doc) { if (doc.headers && doc.headers.core && doc.headers.core.user) { var res = new Document(); res.add( doc.headers.core.user ); return res; } return null; } On 16 May 2012 21:38, Mike Kimber <[email protected]> wrote: > I have couch-lucene working when I index a top level element in my documents. > However when I try and reference a sub element as I would with a couchdb view > no results are returned. A extract from my document is: > > { > "_id": "00023157-c1f8-4e39-ab9a-d56726739b8d", > "_rev": "1-45cd4f7506ccede344d682904556be4b", > "type": "maven-build-profile", > "schema": "TODO-idOfSchemaDocument", > "headers": { > "started": 1328795714442, > "core": { > "user": "buildadm", > "ip": "127.0.0.1", > "executionId": "a607c818-c568-40a9-adbc-0844e6bf9a02" > } > } > } > > The following works > > { > "_id": "_design/lucene", > "_rev": "19-1c7be47e52f8a65e9bb387e8c3251dd4", > "language": "javascript", > "fulltext": { > "by_type": { > "index": "function(doc) { var res = new Document(); res.add( doc. > type); return res; }" > } > } > } > > curl > http://127.0.0.1:5999/_fti/local/build-profiles-raw-mk/_design/lucene/by_type?q= > maven-build-profile > > The following does not: > > { > "_id": "_design/lucene", > "_rev": "19-1c7be47e52f8a65e9bb387e8c3251dd4", > "language": "javascript", > "fulltext": { > "by_user": { > "index": "function(doc) { var res = new Document(); res.add( > doc.headers.core.user ); return res; }" > } > } > } > > > curl > http://127.0.0.1:5999/_fti/local/build-profiles-raw-mk/_design/lucene/by_user?q=buildadm > > Log file wise it provides: > > 2012-05-16 21:33:01,980 WARN [build-profiles-raw-mk] _design/buildstats > caused TypeError: Cannot read property "core" from undefined > 2012-05-16 21:33:01,980 WARN [build-profiles-raw-mk] _design/buildstatsdetail > caused TypeError: Cannot read property "core" from undefined > 2012-05-16 21:33:02,062 WARN [build-profiles-raw-mk] _design/profiling caused > TypeError: Cannot read property "core" from undefined > 2012-05-16 21:33:02,063 WARN [build-profiles-raw-mk] _design/lucene caused > TypeError: Cannot read property "core" from undefined > 2012-05-16 21:33:17,039 INFO [build-profiles-raw-mk] > View[name=_design/lucene/by_user, digest=482tp0k1h6vhiw1cs5humyido] now at > update_seq 106 > > I'm sure there is an easy answer to this, but to a javascript/couchdb newbie > i'm confused as to why I can use doc.headers.core.user can be used in my > couch map. But not in the above couch-lucene index. > > Thanks > > Mike
