lucene-filter.js

Data filter for lucene queries
git clone git://git.finwo.net/lib/lucene-filter.js
Log | Files | Refs | README | LICENSE

starts-with.js (643B)


      1 const field = require('../../field');
      2 
      3 module.exports = {
      4   detect : function (query) {
      5     if (!query) return false;
      6     if ('object' !== typeof query) return false;
      7     if ('string' !== typeof query.field) return false;
      8     return ('*' === query.field.substr(-1));
      9   },
     10   compile: function (query) {
     11     query.field = query.field.substr(0, query.field.length - 1);
     12     return function (data) {
     13       return field(query.field, data, function (value) {
     14         if ('string' !== typeof value) return false;
     15         return value.toLowerCase().substr(0, query.term.length) === query.term.toLowerCase();
     16       }) ? query.boost : 0;
     17     };
     18   },
     19 };