Commit f0096fec authored by Paul Asmuth's avatar Paul Asmuth
Browse files

allow negates queries

parent 9e9c569b
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -11,7 +11,7 @@
      "multisample_key": false
    },
    "without_filter": {
      "name": "Searches with Filter",
      "name": "Searches without Filter",
      "query": "filter(_type = 'search_without_filter')",
      "multisample_key": false
    }
+19 −0
Original line number Diff line number Diff line
{
  "klass": "NumericTimeseriesReport",
  "title": "Search Filter Usage",
  "since": 1336873977,
  "until": 1336874946,
  "query": "filter(_type & 'search_with_filter','search_without_filter')",
  "series": {
    "price": {
      "name": "Price-Filter",
      "query": "filter(q_params.price.max ! '')",
      "multisample_key": false
    },
    "color": {
      "name": "Color-Filter",
      "query": "filter(q_params.color ! '') filter(q_params.color ! 'undefined')",
      "multisample_key": false
    }
  }
}
+13 −0
Original line number Diff line number Diff line
@@ -41,6 +41,9 @@ class FnordQuery::Query
        false
      elsif filter[1] == :equals && filter[2].is_a?(String)
        event[filter[0]].to_s == filter[2]
      elsif filter[1] == :not_equals && filter[2].is_a?(String)
        puts "NOT EQUALS #{[event[filter[0]].to_s, filter[2]].inspect}"
        event[filter[0]].to_s != filter[2]
      elsif filter[1] == :list_include && filter[2].first.is_a?(String)
        filter[2].include?(event[filter[0]].to_s)
      elsif filter[1] == :exists
@@ -51,6 +54,10 @@ class FnordQuery::Query
        event[filter[0]].to_i == filter[2]
      elsif filter[1] == :equals && filter[2].is_a?(Float)
        event[filter[0]].to_f == filter[2]
      elsif filter[1] == :not_equals && filter[2].is_a?(Fixnum)
        event[filter[0]].to_i != filter[2]
      elsif filter[1] == :not_equals && filter[2].is_a?(Float)
        event[filter[0]].to_f != filter[2]
      elsif filter[1] == :less_than && filter[2].is_a?(Integer)
        event[filter[0]].to_i < filter[2]
      elsif filter[1] == :less_than && filter[2].is_a?(Float)
@@ -118,6 +125,12 @@ private
      @filters << [key_clean[m[1]], :equals, m[2].to_i]
    elsif m = arg.match(/^#{key_regex} *= *([0-9]+\.[0-9]+)$/)
      @filters << [key_clean[m[1]], :equals, m[2].to_f]
    elsif m = arg.match(/^#{key_regex} *! *'([^']*)'$/)
      @filters << [key_clean[m[1]], :not_equals, m[2]]
    elsif m = arg.match(/^#{key_regex} *! *([0-9]+)$/)
      @filters << [key_clean[m[1]], :not_equals, m[2].to_i]
    elsif m = arg.match(/^#{key_regex} *! *([0-9]+\.[0-9]+)$/)
      @filters << [key_clean[m[1]], :not_equals, m[2].to_f]
    elsif m = arg.match(/^#{key_regex} *< *([0-9]+)$/)
      @filters << [key_clean[m[1]], :less_than, m[2].to_i]
    elsif m = arg.match(/^#{key_regex} *< *([0-9]+\.[0-9]+)$/)
+1 −1
Original line number Diff line number Diff line
@@ -40,7 +40,7 @@ class FnordQuery::NumericTimeseriesReport < FnordQuery::Report

      @series_queries.each do |skey, squery|
        if squery.matches?(event)
          #puts event.inspect
          puts event.inspect
  	      (event["_time"]-@tick..event["_time"]).to_a.reverse.detect do |t|
  	  	    if @series_timelines[skey].has_key?(t)
              @series_timelines[skey][t] += 1
+3 −3
Original line number Diff line number Diff line
@@ -13,7 +13,7 @@
    </link>
  </head>
  <body class='inner'>
    <h1>Gross Search Volume</h1>
    <h1>Search Filter Usage</h1>
    <h3>NumericTimeseries Report</h3>
    <ul class='ui_tabs tabs'>
      <li class='active' data-tab='Overview'>
@@ -22,7 +22,7 @@
    </ul>
    <div class='mywidget'></div>
    <div class='widget NumbersWidget' style='margin-bottom: 20px; overflow-x: hidden; overflow-y: hidden; width:1700px;'>
      <div class='headbar small1'>Gross Search Volume</div>
      <div class='headbar small1'>Search Filter Usage</div>
      <div class='numbers_container' rel='Queries' style='width: 380px; '>
        <div class='title'>Queries</div>
        <div class='number' data='2.6666666666666665' rel='3'>
@@ -49,7 +49,7 @@
          title: "Fnord!!!!",
          elem: $('.mywidget'),
          default_style: 'stack',
          series: [{"data":[{"x":1336874946,"y":2},{"x":1336874940,"y":16},{"x":1336874934,"y":12},{"x":1336874928,"y":14},{"x":1336874922,"y":14},{"x":1336874916,"y":15},{"x":1336874910,"y":23},{"x":1336874904,"y":24},{"x":1336874898,"y":23},{"x":1336874892,"y":22},{"x":1336874886,"y":24},{"x":1336874880,"y":24},{"x":1336874874,"y":22},{"x":1336874868,"y":26},{"x":1336874862,"y":24},{"x":1336874856,"y":23},{"x":1336874850,"y":25},{"x":1336874844,"y":23},{"x":1336874838,"y":21},{"x":1336874832,"y":27},{"x":1336874826,"y":11},{"x":1336874820,"y":14},{"x":1336874814,"y":15},{"x":1336874808,"y":14},{"x":1336874802,"y":12},{"x":1336874796,"y":14},{"x":1336874790,"y":12},{"x":1336874784,"y":17},{"x":1336874778,"y":17},{"x":1336874772,"y":14},{"x":1336874766,"y":13},{"x":1336874760,"y":15},{"x":1336874754,"y":12},{"x":1336874748,"y":14},{"x":1336874742,"y":14},{"x":1336874736,"y":15},{"x":1336874730,"y":15},{"x":1336874724,"y":13},{"x":1336874718,"y":14},{"x":1336874712,"y":15},{"x":1336874706,"y":16},{"x":1336874700,"y":13},{"x":1336874694,"y":19},{"x":1336874688,"y":11},{"x":1336874682,"y":16},{"x":1336874676,"y":15},{"x":1336874670,"y":14},{"x":1336874664,"y":16},{"x":1336874658,"y":15},{"x":1336874652,"y":17},{"x":1336874646,"y":11},{"x":1336874640,"y":12},{"x":1336874634,"y":14},{"x":1336874628,"y":16},{"x":1336874622,"y":13},{"x":1336874616,"y":12},{"x":1336874610,"y":15},{"x":1336874604,"y":16},{"x":1336874598,"y":15},{"x":1336874592,"y":12},{"x":1336874586,"y":14},{"x":1336874580,"y":15},{"x":1336874574,"y":17},{"x":1336874568,"y":14},{"x":1336874562,"y":19},{"x":1336874556,"y":19},{"x":1336874550,"y":13},{"x":1336874544,"y":15},{"x":1336874538,"y":13},{"x":1336874532,"y":11},{"x":1336874526,"y":16},{"x":1336874520,"y":12},{"x":1336874514,"y":13},{"x":1336874508,"y":13},{"x":1336874502,"y":26},{"x":1336874496,"y":25},{"x":1336874490,"y":22},{"x":1336874484,"y":24},{"x":1336874478,"y":20},{"x":1336874472,"y":22},{"x":1336874466,"y":27},{"x":1336874460,"y":24},{"x":1336874454,"y":21},{"x":1336874448,"y":23},{"x":1336874442,"y":30},{"x":1336874436,"y":17},{"x":1336874430,"y":23},{"x":1336874424,"y":29},{"x":1336874418,"y":25},{"x":1336874412,"y":24},{"x":1336874406,"y":23},{"x":1336874400,"y":18},{"x":1336874394,"y":16},{"x":1336874388,"y":12},{"x":1336874382,"y":13},{"x":1336874376,"y":18},{"x":1336874370,"y":14},{"x":1336874364,"y":13},{"x":1336874358,"y":12},{"x":1336874352,"y":14},{"x":1336874346,"y":12},{"x":1336874340,"y":14},{"x":1336874334,"y":18},{"x":1336874328,"y":14},{"x":1336874322,"y":13},{"x":1336874316,"y":21},{"x":1336874310,"y":14},{"x":1336874304,"y":14},{"x":1336874298,"y":19},{"x":1336874292,"y":16},{"x":1336874286,"y":19},{"x":1336874280,"y":17},{"x":1336874274,"y":14},{"x":1336874268,"y":13},{"x":1336874262,"y":16},{"x":1336874256,"y":18},{"x":1336874250,"y":15},{"x":1336874244,"y":11},{"x":1336874238,"y":16},{"x":1336874232,"y":14},{"x":1336874226,"y":15},{"x":1336874220,"y":14},{"x":1336874214,"y":14},{"x":1336874208,"y":14},{"x":1336874202,"y":13},{"x":1336874196,"y":12},{"x":1336874190,"y":12},{"x":1336874184,"y":13},{"x":1336874178,"y":15},{"x":1336874172,"y":13},{"x":1336874166,"y":12},{"x":1336874160,"y":16},{"x":1336874154,"y":10},{"x":1336874148,"y":13},{"x":1336874142,"y":19},{"x":1336874136,"y":12},{"x":1336874130,"y":14},{"x":1336874124,"y":12},{"x":1336874118,"y":16},{"x":1336874112,"y":15},{"x":1336874106,"y":14},{"x":1336874100,"y":13},{"x":1336874094,"y":13},{"x":1336874088,"y":14},{"x":1336874082,"y":18},{"x":1336874076,"y":11},{"x":1336874070,"y":19},{"x":1336874064,"y":26},{"x":1336874058,"y":25}],"name":"Searches with Filter","color":"#42436B"},{"data":[{"x":1336874946,"y":0},{"x":1336874940,"y":0},{"x":1336874934,"y":0},{"x":1336874928,"y":1},{"x":1336874922,"y":1},{"x":1336874916,"y":0},{"x":1336874910,"y":0},{"x":1336874904,"y":0},{"x":1336874898,"y":1},{"x":1336874892,"y":1},{"x":1336874886,"y":1},{"x":1336874880,"y":0},{"x":1336874874,"y":0},{"x":1336874868,"y":2},{"x":1336874862,"y":0},{"x":1336874856,"y":1},{"x":1336874850,"y":0},{"x":1336874844,"y":0},{"x":1336874838,"y":1},{"x":1336874832,"y":0},{"x":1336874826,"y":1},{"x":1336874820,"y":0},{"x":1336874814,"y":0},{"x":1336874808,"y":1},{"x":1336874802,"y":0},{"x":1336874796,"y":1},{"x":1336874790,"y":2},{"x":1336874784,"y":2},{"x":1336874778,"y":0},{"x":1336874772,"y":1},{"x":1336874766,"y":2},{"x":1336874760,"y":1},{"x":1336874754,"y":1},{"x":1336874748,"y":0},{"x":1336874742,"y":1},{"x":1336874736,"y":0},{"x":1336874730,"y":1},{"x":1336874724,"y":2},{"x":1336874718,"y":0},{"x":1336874712,"y":0},{"x":1336874706,"y":0},{"x":1336874700,"y":1},{"x":1336874694,"y":0},{"x":1336874688,"y":0},{"x":1336874682,"y":0},{"x":1336874676,"y":0},{"x":1336874670,"y":0},{"x":1336874664,"y":0},{"x":1336874658,"y":0},{"x":1336874652,"y":0},{"x":1336874646,"y":1},{"x":1336874640,"y":2},{"x":1336874634,"y":1},{"x":1336874628,"y":1},{"x":1336874622,"y":1},{"x":1336874616,"y":3},{"x":1336874610,"y":0},{"x":1336874604,"y":1},{"x":1336874598,"y":1},{"x":1336874592,"y":0},{"x":1336874586,"y":0},{"x":1336874580,"y":2},{"x":1336874574,"y":0},{"x":1336874568,"y":0},{"x":1336874562,"y":0},{"x":1336874556,"y":4},{"x":1336874550,"y":0},{"x":1336874544,"y":0},{"x":1336874538,"y":0},{"x":1336874532,"y":0},{"x":1336874526,"y":0},{"x":1336874520,"y":0},{"x":1336874514,"y":2},{"x":1336874508,"y":0},{"x":1336874502,"y":0},{"x":1336874496,"y":1},{"x":1336874490,"y":0},{"x":1336874484,"y":1},{"x":1336874478,"y":0},{"x":1336874472,"y":0},{"x":1336874466,"y":0},{"x":1336874460,"y":0},{"x":1336874454,"y":1},{"x":1336874448,"y":1},{"x":1336874442,"y":1},{"x":1336874436,"y":0},{"x":1336874430,"y":2},{"x":1336874424,"y":2},{"x":1336874418,"y":0},{"x":1336874412,"y":0},{"x":1336874406,"y":1},{"x":1336874400,"y":1},{"x":1336874394,"y":1},{"x":1336874388,"y":0},{"x":1336874382,"y":0},{"x":1336874376,"y":1},{"x":1336874370,"y":1},{"x":1336874364,"y":0},{"x":1336874358,"y":0},{"x":1336874352,"y":1},{"x":1336874346,"y":2},{"x":1336874340,"y":0},{"x":1336874334,"y":1},{"x":1336874328,"y":2},{"x":1336874322,"y":0},{"x":1336874316,"y":1},{"x":1336874310,"y":0},{"x":1336874304,"y":1},{"x":1336874298,"y":1},{"x":1336874292,"y":0},{"x":1336874286,"y":0},{"x":1336874280,"y":0},{"x":1336874274,"y":0},{"x":1336874268,"y":0},{"x":1336874262,"y":1},{"x":1336874256,"y":0},{"x":1336874250,"y":2},{"x":1336874244,"y":2},{"x":1336874238,"y":0},{"x":1336874232,"y":2},{"x":1336874226,"y":0},{"x":1336874220,"y":1},{"x":1336874214,"y":0},{"x":1336874208,"y":1},{"x":1336874202,"y":1},{"x":1336874196,"y":1},{"x":1336874190,"y":0},{"x":1336874184,"y":0},{"x":1336874178,"y":4},{"x":1336874172,"y":1},{"x":1336874166,"y":2},{"x":1336874160,"y":0},{"x":1336874154,"y":0},{"x":1336874148,"y":1},{"x":1336874142,"y":1},{"x":1336874136,"y":0},{"x":1336874130,"y":0},{"x":1336874124,"y":1},{"x":1336874118,"y":0},{"x":1336874112,"y":0},{"x":1336874106,"y":1},{"x":1336874100,"y":2},{"x":1336874094,"y":1},{"x":1336874088,"y":0},{"x":1336874082,"y":0},{"x":1336874076,"y":0},{"x":1336874070,"y":0},{"x":1336874064,"y":0},{"x":1336874058,"y":1}],"name":"Searches with Filter","color":"#FACE4F"}]
          series: [{"data":[{"x":1336874946,"y":0},{"x":1336874940,"y":0},{"x":1336874934,"y":0},{"x":1336874928,"y":0},{"x":1336874922,"y":0},{"x":1336874916,"y":0},{"x":1336874910,"y":0},{"x":1336874904,"y":0},{"x":1336874898,"y":0},{"x":1336874892,"y":0},{"x":1336874886,"y":0},{"x":1336874880,"y":0},{"x":1336874874,"y":0},{"x":1336874868,"y":0},{"x":1336874862,"y":0},{"x":1336874856,"y":0},{"x":1336874850,"y":0},{"x":1336874844,"y":0},{"x":1336874838,"y":0},{"x":1336874832,"y":0},{"x":1336874826,"y":0},{"x":1336874820,"y":0},{"x":1336874814,"y":0},{"x":1336874808,"y":0},{"x":1336874802,"y":0},{"x":1336874796,"y":0},{"x":1336874790,"y":0},{"x":1336874784,"y":0},{"x":1336874778,"y":0},{"x":1336874772,"y":0},{"x":1336874766,"y":0},{"x":1336874760,"y":0},{"x":1336874754,"y":0},{"x":1336874748,"y":0},{"x":1336874742,"y":0},{"x":1336874736,"y":0},{"x":1336874730,"y":0},{"x":1336874724,"y":0},{"x":1336874718,"y":0},{"x":1336874712,"y":0},{"x":1336874706,"y":1},{"x":1336874700,"y":0},{"x":1336874694,"y":0},{"x":1336874688,"y":0},{"x":1336874682,"y":0},{"x":1336874676,"y":0},{"x":1336874670,"y":0},{"x":1336874664,"y":0},{"x":1336874658,"y":0},{"x":1336874652,"y":0},{"x":1336874646,"y":0},{"x":1336874640,"y":0},{"x":1336874634,"y":0},{"x":1336874628,"y":0},{"x":1336874622,"y":0},{"x":1336874616,"y":0},{"x":1336874610,"y":0},{"x":1336874604,"y":0},{"x":1336874598,"y":0},{"x":1336874592,"y":0},{"x":1336874586,"y":0},{"x":1336874580,"y":0},{"x":1336874574,"y":0},{"x":1336874568,"y":0},{"x":1336874562,"y":0},{"x":1336874556,"y":0},{"x":1336874550,"y":0},{"x":1336874544,"y":0},{"x":1336874538,"y":0},{"x":1336874532,"y":0},{"x":1336874526,"y":0},{"x":1336874520,"y":0},{"x":1336874514,"y":0},{"x":1336874508,"y":0},{"x":1336874502,"y":0},{"x":1336874496,"y":0},{"x":1336874490,"y":0},{"x":1336874484,"y":0},{"x":1336874478,"y":0},{"x":1336874472,"y":0},{"x":1336874466,"y":0},{"x":1336874460,"y":0},{"x":1336874454,"y":0},{"x":1336874448,"y":0},{"x":1336874442,"y":0},{"x":1336874436,"y":0},{"x":1336874430,"y":0},{"x":1336874424,"y":0},{"x":1336874418,"y":0},{"x":1336874412,"y":0},{"x":1336874406,"y":0},{"x":1336874400,"y":0},{"x":1336874394,"y":0},{"x":1336874388,"y":0},{"x":1336874382,"y":0},{"x":1336874376,"y":0},{"x":1336874370,"y":0},{"x":1336874364,"y":0},{"x":1336874358,"y":0},{"x":1336874352,"y":0},{"x":1336874346,"y":0},{"x":1336874340,"y":0},{"x":1336874334,"y":0},{"x":1336874328,"y":0},{"x":1336874322,"y":0},{"x":1336874316,"y":0},{"x":1336874310,"y":0},{"x":1336874304,"y":0},{"x":1336874298,"y":0},{"x":1336874292,"y":0},{"x":1336874286,"y":0},{"x":1336874280,"y":0},{"x":1336874274,"y":0},{"x":1336874268,"y":0},{"x":1336874262,"y":0},{"x":1336874256,"y":0},{"x":1336874250,"y":0},{"x":1336874244,"y":0},{"x":1336874238,"y":0},{"x":1336874232,"y":0},{"x":1336874226,"y":0},{"x":1336874220,"y":0},{"x":1336874214,"y":0},{"x":1336874208,"y":0},{"x":1336874202,"y":0},{"x":1336874196,"y":0},{"x":1336874190,"y":0},{"x":1336874184,"y":0},{"x":1336874178,"y":0},{"x":1336874172,"y":0},{"x":1336874166,"y":0},{"x":1336874160,"y":0},{"x":1336874154,"y":0},{"x":1336874148,"y":0},{"x":1336874142,"y":0},{"x":1336874136,"y":0},{"x":1336874130,"y":0},{"x":1336874124,"y":0},{"x":1336874118,"y":0},{"x":1336874112,"y":0},{"x":1336874106,"y":0},{"x":1336874100,"y":0},{"x":1336874094,"y":0},{"x":1336874088,"y":0},{"x":1336874082,"y":0},{"x":1336874076,"y":0},{"x":1336874070,"y":0},{"x":1336874064,"y":0},{"x":1336874058,"y":0}],"name":"Price-Filter","color":"#42436B"}]
        });
        
        function sampler(){