Beginings of scoring
[disclosr.git] / include / couchdb.inc.php
blob:a/include/couchdb.inc.php -> blob:b/include/couchdb.inc.php
--- a/include/couchdb.inc.php
+++ b/include/couchdb.inc.php
@@ -8,12 +8,34 @@
     $obj->_id = "_design/" . urlencode("app");
     $obj->language = "javascript";
     $obj->views->byABN->map = "function(doc) {   emit(doc.abn, doc); };";
-    $obj->views->byName->map = "function(doc) {   emit(doc.name, doc); };";
+    $obj->views->byName->map = "function(doc) {   emit(doc.name, doc);
+ for (name in doc.otherNames) {
+if (doc.otherNames[name] != '' && doc.otherNames[name] != doc.name) {
+       	 emit(doc.otherNames[name], doc); 
+}
+        }
+};";
     $obj->views->byLastModified->map = "function(doc) {   emit(doc.metadata.lastModified, doc); }";
     $obj->views->getActive->map = 'function(doc) { if (doc.status == "active") {  emit(doc._id, doc); } };';
     $obj->views->getSuspended->map = 'function(doc) { if (doc.status == "suspended") {  emit(doc._id, doc); } };';
     $obj->views->getScrapeRequired->map = "function(doc) {   emit(doc.abn, doc); };";
     $obj->views->showNamesABNs->map = "function(doc) {   emit(doc._id, {name: doc.name, abn: doc.abn}); };";
+    // http://stackoverflow.com/questions/646628/javascript-startswith
+    $obj->views->score->map = 'if(!String.prototype.startsWith){
+    String.prototype.startsWith = function (str) {
+        return !this.indexOf(str);
+    }
+}
+
+function(doc) {
+count = 0;
+for(var propName in doc) {
+      if(typeof(doc[propName]) != "undefined" && propName.startsWith("l")) {
+  	count++
+	}
+}
+  emit(doc._id,{name: doc.name, score:count});
+}';
 
     // allow safe updates (even if slightly slower due to extra: rev-detection check).
     return $db->save($obj, true);