I'm using couchdb-lucene to index a list of fields (user defined) in a 
document using the following design document:

{
 "_id": "_design/foo",
 "_rev": "16-dcd0d39369c35b3d74ceef13a388826f",
 "fulltext": {
"by_metadata": {
 "index": "function(doc) { 
var ret=new Document(); 
if (doc['type'] == 'CSAsset' && doc['deleted'] != true) {
for (var i in doc.metadata) { 
if(doc.metadata[i]['key'] == 'Title') { 
ret.add(doc.metadata[i]['value'].toLowerCase(), {'field':'sort_title', 
'store':'yes', 'index' : 'not_analyzed'});
} 
ret.add(doc.metadata[i]['value'],{'field':doc.metadata[i]['key'].toLowerCase() 
}); 
ret.add(doc.metadata[i]['value']); 
} 
for (var i in doc.partitions) { 
ret.add(doc.partitions[i].partition_id,{'field':'partition'}); 
ret.add(doc.partitions[i].partition_id);
} 
ret.add(doc['created_at'], {'field':'sort_created_at', 'store':'yes', 'index' : 
'not_analyzed'}); 
return ret; 
} else { 
return null; 
} 
}"
 }
 }
}



(I've formatted the definition so that it's not all on one line for readability 
here)

However, when using the by_metadata view it doesn't appear to be breaking the 
values up when there are underscores. For instance, searching for the term 
"wonderland" should return back a document where there is a field with the 
value "some_wonderland_example" but it doesn't. It returns the document if I 
search for the full term.

I'm just wondering whether I'm defining the index incorrectly? (of course, feel 
free to point out if I'm doing anything else glaringly obviously wrong too!)



Rory 



Reply via email to