Profile Report

Thread ID Total Time
70347705768660 0.03370400000000007

Thread 70347705768660

%Total %Self Total Self Wait Child Calls Name Line
100.00% 0.28% 0.03 0.00 0.00 0.03 1 Global#[No method] 30
    0.03 0.00 0.00 0.03 1/741 Array#each 34
    0.00 0.00 0.00 0.00 4/4 Proc#[] 34
    0.00 0.00 0.00 0.00 48/741 Enumerable#sort_by
    0.00 0.00 0.00 0.00 40/741 Kernel#loop
    0.00 0.00 0.00 0.00 4/741 Picky::Query::QualifierCategoryMapper#initialize 17
    0.00 0.00 0.00 0.00 4/741 Picky::Categories#each_category 11
    0.00 0.00 0.00 0.00 16/741 Picky::Query::QualifierCategoryMapper#add 27
    0.00 0.00 0.00 0.00 4/741 Searches#each 8
    0.00 0.00 0.00 0.00 40/741 Picky::Query::Allocations#each 17
    0.00 0.00 0.00 0.00 464/741 Enumerable#inject
    0.00 0.00 0.00 0.00 40/741 Enumerable#any?
    0.00 0.00 0.00 0.00 40/741 Picky::Query::Allocations#calculate_score 32
    0.00 0.00 0.00 0.00 40/741 Picky::Query::Tokens#categorize 69
    0.03 0.00 0.00 0.03 1/741 Global#[No method] 34
99.72% 0.00% 0.03 0.00 0.00 0.03 741 *Array#each
    0.03 0.00 0.00 0.03 4/4 Searches#each
    0.03 0.00 0.00 0.03 40/40 Picky::Search#search
    0.01 0.00 0.00 0.01 40/40 Picky::Query::Indexes#allocation_for
    0.01 0.00 0.00 0.01 100/100 Picky::Query::Token#possible_combinations_in
    0.00 0.00 0.00 0.00 400/400 Picky::Category#combination_for
    0.00 0.00 0.00 0.00 48/48 Picky::Query::Allocation#calculate_score
    0.00 0.00 0.00 0.00 48/48 Picky::Query::Allocation#process!
    0.00 0.00 0.00 0.00 120/120 Picky::Query::Combination#ids
    0.00 0.00 0.00 0.00 120/120 Picky::Query::Combination#weight
    0.00 0.00 0.00 0.00 100/100 Picky::Query::Token#categorize
    0.00 0.00 0.00 0.00 112/629 Class#new
    0.00 0.00 0.00 0.00 148/484 Array#empty?
    0.00 0.00 0.00 0.00 72/88 Symbol#==
    0.00 0.00 0.00 0.00 48/128 Fixnum#+
    0.00 0.00 0.00 0.00 6/110 Fixnum#zero?
    0.00 0.00 0.00 0.00 16/16 Picky::Query::QualifierCategoryMapper#add
    0.00 0.00 0.00 0.00 16/16 Symbol#intern
    0.00 0.00 0.00 0.00 4/4 Picky::Index#each_category
    0.00 0.00 0.00 0.00 200/240 String#empty?
    0.00 0.00 0.00 0.00 200/744 String#=~
    0.00 0.00 0.00 0.00 200/200 String#[]
    0.00 0.00 0.00 0.00 16/16 Hash#has_key?
    0.00 0.00 0.00 0.00 4/4 Picky::Search#terminate_early
    0.00 0.00 0.00 0.00 16/16 Hash#[]=
    0.00 0.00 0.00 0.00 4/4 Searches#prepare
    0.03 0.00 0.00 0.03 4/4 Array#each
99.72% 0.00% 0.03 0.00 0.00 0.03 4 Searches#each 7
    0.00 0.00 0.00 0.00 4/741 Array#each 8
    0.03 0.00 0.00 0.03 40/40 Array#each
97.93% 0.50% 0.03 0.00 0.00 0.03 40 Picky::Search#search 184
    0.02 0.00 0.00 0.02 40/40 Picky::Search#search_with 185
    0.01 0.00 0.00 0.01 40/40 Picky::Search#tokenized 185
    0.00 0.00 0.00 0.00 80/80 Integer#to_i 185
    0.02 0.00 0.00 0.02 40/40 Picky::Search#search 185
69.88% 0.63% 0.02 0.00 0.00 0.02 40 Picky::Search#search_with 192
    0.02 0.00 0.00 0.02 40/40 Picky::Helpers::Measuring#timed 195
    0.00 0.00 0.00 0.00 40/40 Float#round 198
    0.02 0.00 0.00 0.02 40/40 Picky::Search#search_with 195
69.05% 0.81% 0.02 0.00 0.00 0.02 40 Picky::Helpers::Measuring#timed 10
    0.02 0.00 0.00 0.02 40/40 Proc#call 15
    0.00 0.00 0.00 0.00 80/80 Time#to_f 17
    0.00 0.00 0.00 0.00 80/80 <Class::Time>#now 17
    0.00 0.00 0.00 0.00 40/48 Kernel#lambda 11
    0.02 0.00 0.00 0.02 40/40 Picky::Helpers::Measuring#timed 15
64.30% 0.30% 0.02 0.00 0.00 0.02 40 Proc#call
    0.02 0.00 0.00 0.02 40/40 Picky::Search#execute
    0.02 0.00 0.00 0.02 40/40 Proc#call
64.00% 0.38% 0.02 0.00 0.00 0.02 40 Picky::Search#execute 207
    0.02 0.00 0.00 0.02 40/40 Picky::Search#sorted_allocations 208
    0.00 0.00 0.00 0.00 40/40 <Class::Picky::Results>#from 208
    0.02 0.00 0.00 0.02 40/40 Picky::Search#execute 208
51.76% 0.32% 0.02 0.00 0.00 0.02 40 Picky::Search#sorted_allocations 237
    0.02 0.00 0.00 0.02 40/40 Picky::Query::Indexes#prepared_allocations_for 238
    0.02 0.00 0.00 0.02 40/40 Picky::Search#sorted_allocations 238
51.44% 0.75% 0.02 0.00 0.00 0.02 40 Picky::Query::Indexes#prepared_allocations_for 77
    0.01 0.00 0.00 0.01 40/40 Picky::Query::Indexes#allocations_for 78
    0.00 0.00 0.00 0.00 40/40 Picky::Query::Allocations#calculate_score 84
    0.00 0.00 0.00 0.00 40/40 Picky::Query::Allocations#sort! 91
    0.00 0.00 0.00 0.00 100/464 Array#collect!
    0.00 0.00 0.00 0.00 40/464 Picky::Query::Tokens#possible_combinations_in 38
    0.00 0.00 0.00 0.00 40/464 Picky::Query::Indexes#expand_combinations_from 197
    0.00 0.00 0.00 0.00 100/464 Picky::Categories#possible_for 50
    0.00 0.00 0.00 0.00 48/464 Array#clustered_uniq_fast 21
    0.00 0.00 0.00 0.00 48/464 Picky::Query::Combinations#inject 17
    0.00 0.00 0.00 0.00 48/464 Picky::Query::Combinations#score 30
    0.01 0.00 0.00 0.01 40/464 Picky::Query::Indexes#allocations_ary_for 113
44.84% 0.95% 0.02 0.00 0.00 0.01 464 *Enumerable#inject
    0.00 0.00 0.00 0.00 464/741 Array#each
    0.01 0.00 0.00 0.01 40/40 Picky::Query::Indexes#prepared_allocations_for 78
39.35% 0.45% 0.01 0.00 0.00 0.01 40 Picky::Query::Indexes#allocations_for 107
    0.01 0.00 0.00 0.01 40/40 Picky::Query::Indexes#allocations_ary_for 110
    0.00 0.00 0.00 0.00 40/40 Picky::Query::Tokens#categorize 108
    0.00 0.00 0.00 0.00 40/629 Class#new 110
    0.01 0.00 0.00 0.01 40/40 Picky::Query::Indexes#allocations_for 110
34.90% 0.27% 0.01 0.00 0.00 0.01 40 Picky::Query::Indexes#allocations_ary_for 112
    0.01 0.00 0.00 0.01 40/464 Enumerable#inject 113
    0.01 0.00 0.00 0.01 40/40 Array#each
34.10% 0.47% 0.01 0.00 0.00 0.01 40 Picky::Query::Indexes#allocation_for 117
    0.01 0.00 0.00 0.01 40/40 Picky::Query::Tokens#possible_combinations_in 120
    0.00 0.00 0.00 0.00 40/40 Picky::Query::Indexes#expand_combinations_from 124
    0.00 0.00 0.00 0.00 40/40 Array#map! 128
    0.01 0.00 0.00 0.01 40/40 Picky::Search#search 185
27.33% 0.72% 0.01 0.00 0.00 0.01 40 Picky::Search#tokenized 227
    0.01 0.00 0.00 0.00 40/40 <Class::Picky::Query::Tokens>#processed 229
    0.00 0.00 0.00 0.00 40/40 Picky::Tokenizer#tokenize 228
    0.00 0.00 0.00 0.00 40/40 Picky::Query::Tokens#partialize_last 231
    0.01 0.00 0.00 0.01 40/40 Picky::Query::Indexes#allocation_for 120
23.18% 0.27% 0.01 0.00 0.00 0.01 40 Picky::Query::Tokens#possible_combinations_in 37
    0.00 0.00 0.00 0.00 40/464 Enumerable#inject 38
    0.01 0.00 0.00 0.01 100/100 Array#each
21.86% 0.66% 0.01 0.00 0.00 0.01 100 Picky::Query::Token#possible_combinations_in 205
    0.01 0.00 0.00 0.01 100/100 Picky::Index#possible_combinations 206
    0.01 0.00 0.00 0.01 100/100 Picky::Query::Token#possible_combinations_in 206
21.20% 0.66% 0.01 0.00 0.00 0.01 100 Picky::Index#possible_combinations 6
    0.01 0.00 0.00 0.01 100/100 Picky::Categories#possible_combinations 7
    0.01 0.00 0.00 0.01 100/100 Picky::Index#possible_combinations 7
20.54% 0.93% 0.01 0.00 0.00 0.01 100 Picky::Categories#possible_combinations 15
    0.01 0.00 0.00 0.01 100/100 Picky::Categories#possible_for 16
    0.00 0.00 0.00 0.00 100/100 Picky::Query::Token#similar? 16
    0.00 0.00 0.00 0.00 40/120 Picky::Tokenizer#tokens_for 229
    0.00 0.00 0.00 0.00 40/120 Picky::Query::Indexes#expand_combinations_from 206
    0.00 0.00 0.00 0.00 40/120 <Class::Picky::Query::Tokens>#processed 27
19.73% 2.75% 0.01 0.00 0.00 0.01 120 Array#collect!
    0.00 0.00 0.00 0.00 100/100 <Class::Picky::Query::Token>#processed
    0.00 0.00 0.00 0.00 100/100 Array#*
    0.00 0.00 0.00 0.00 100/100 String#downcase!
    0.00 0.00 0.00 0.00 100/110 Fixnum#zero?
    0.00 0.00 0.00 0.00 100/464 Enumerable#inject
    0.01 0.00 0.00 0.01 100/100 Picky::Categories#possible_combinations 16
19.11% 1.15% 0.01 0.00 0.00 0.01 100 Picky::Categories#possible_for 49
    0.00 0.00 0.00 0.00 100/100 Picky::Categories#possible_categories 50
    0.00 0.00 0.00 0.00 100/464 Enumerable#inject 50
    0.01 0.00 0.00 0.00 40/40 Picky::Search#tokenized 229
15.15% 0.32% 0.01 0.00 0.00 0.00 40 <Class::Picky::Query::Tokens>#processed 26
    0.00 0.00 0.00 0.00 40/120 Array#collect! 27
    0.00 0.00 0.00 0.00 40/629 Class#new 27
    0.00 0.00 0.00 0.00 40/80 Array#zip 27
    0.00 0.00 0.00 0.00 400/400 Array#each
14.29% 2.55% 0.00 0.00 0.00 0.00 400 Picky::Category#combination_for 37
    0.00 0.00 0.00 0.00 400/508 Picky::Category#weight 38
    0.00 0.00 0.00 0.00 108/629 Class#new 38
    0.00 0.00 0.00 0.00 100/100 Array#collect!
13.40% 0.82% 0.00 0.00 0.00 0.00 100 <Class::Picky::Query::Token>#processed 37
    0.00 0.00 0.00 0.00 100/100 Picky::Query::Token#process 38
    0.00 0.00 0.00 0.00 100/629 Class#new 38
    0.00 0.00 0.00 0.00 108/508 Picky::Query::Combination#weight 37
    0.00 0.00 0.00 0.00 400/508 Picky::Category#combination_for 38
12.61% 3.87% 0.00 0.00 0.00 0.00 508 Picky::Category#weight 18
    0.00 0.00 0.00 0.00 508/616 Picky::Category#bundle_for 19
    0.00 0.00 0.00 0.00 508/508 Picky::Bundle#weight 19
    0.00 0.00 0.00 0.00 40/40 Picky::Search#execute 208
11.86% 0.46% 0.00 0.00 0.00 0.00 40 <Class::Picky::Results>#from 27
    0.00 0.00 0.00 0.00 40/40 Picky::Results#prepare! 29
    0.00 0.00 0.00 0.00 40/629 Class#new 28
    0.00 0.00 0.00 0.00 40/40 Picky::Query::Indexes#prepared_allocations_for 84
10.88% 0.23% 0.00 0.00 0.00 0.00 40 Picky::Query::Allocations#calculate_score 31
    0.00 0.00 0.00 0.00 40/741 Array#each 32
    0.00 0.00 0.00 0.00 100/100 <Class::Picky::Query::Token>#processed 38
10.79% 1.69% 0.00 0.00 0.00 0.00 100 Picky::Query::Token#process 40
    0.00 0.00 0.00 0.00 100/100 Picky::Query::Token#partialize 42
    0.00 0.00 0.00 0.00 100/100 Picky::Query::Token#similarize 43
    0.00 0.00 0.00 0.00 100/100 Picky::Query::Token#qualify 41
    0.00 0.00 0.00 0.00 100/100 Picky::Query::Token#remove_illegals 44
    0.00 0.00 0.00 0.00 40/40 <Class::Picky::Results>#from 29
10.61% 0.34% 0.00 0.00 0.00 0.00 40 Picky::Results#prepare! 38
    0.00 0.00 0.00 0.00 40/40 Picky::Query::Allocations#process! 41
    0.00 0.00 0.00 0.00 48/48 Array#each
10.29% 0.57% 0.00 0.00 0.00 0.00 48 Picky::Query::Allocation#calculate_score 39
    0.00 0.00 0.00 0.00 48/48 Picky::Backends::Backend#weight 43
    0.00 0.00 0.00 0.00 48/48 Picky::Query::Combinations#boost_for 43
    0.00 0.00 0.00 0.00 48/96 Picky::Query::Combinations#empty? 44
    0.00 0.00 0.00 0.00 48/48 Float#+ 43
    0.00 0.00 0.00 0.00 40/40 Picky::Results#prepare! 41
10.27% 0.34% 0.00 0.00 0.00 0.00 40 Picky::Query::Allocations#process! 83
    0.00 0.00 0.00 0.00 40/40 Picky::Query::Allocations#each 84
    0.00 0.00 0.00 0.00 40/40 Picky::Search#tokenized 228
10.05% 0.96% 0.00 0.00 0.00 0.00 40 Picky::Tokenizer#tokenize 184
    0.00 0.00 0.00 0.00 40/40 Picky::Tokenizer#pretokenize 187
    0.00 0.00 0.00 0.00 40/40 Picky::Tokenizer#tokens_for 189
    0.00 0.00 0.00 0.00 40/40 Picky::Tokenizer#preprocess 185
    0.00 0.00 0.00 0.00 40/140 String#blank? 186
    0.00 0.00 0.00 0.00 40/52 String#to_s 185
    0.00 0.00 0.00 0.00 40/484 Array#empty? 188
    0.00 0.00 0.00 0.00 40/40 Picky::Query::Allocations#process! 84
9.93% 0.26% 0.00 0.00 0.00 0.00 40 Picky::Query::Allocations#each 16
    0.00 0.00 0.00 0.00 40/741 Array#each 17
    0.00 0.00 0.00 0.00 4/629 Proc#[]
    0.00 0.00 0.00 0.00 8/629 <Class::CSV>#open 1349
    0.00 0.00 0.00 0.00 20/629 CSV#encode_re 2309
    0.00 0.00 0.00 0.00 8/629 CSV#init_converters 2156
    0.00 0.00 0.00 0.00 40/629 CSV#shift 1847
    0.00 0.00 0.00 0.00 1/629 <Class::Picky::Tokenizer>#searching 24
    0.00 0.00 0.00 0.00 8/629 Picky::Search#initialize 48
    0.00 0.00 0.00 0.00 4/629 Picky::Query::Indexes#remap_qualifiers 44
    0.00 0.00 0.00 0.00 40/629 Picky::Query::Indexes#allocations_for 110
    0.00 0.00 0.00 0.00 40/629 <Class::Picky::Query::Tokens>#processed 27
    0.00 0.00 0.00 0.00 40/629 <Class::Picky::Results>#from 28
    0.00 0.00 0.00 0.00 112/629 Array#each
    0.00 0.00 0.00 0.00 108/629 Picky::Category#combination_for 38
    0.00 0.00 0.00 0.00 100/629 <Class::Picky::Query::Token>#processed 38
    0.00 0.00 0.00 0.00 96/629 Array#map!
9.34% 3.41% 0.00 0.00 0.00 0.00 629 *Class#new
    0.00 0.00 0.00 0.00 449/449 <Class::BasicObject>#allocate
    0.00 0.00 0.00 0.00 48/48 Picky::Query::Allocation#initialize
    0.00 0.00 0.00 0.00 100/100 Picky::Query::Token#initialize
    0.00 0.00 0.00 0.00 108/108 Picky::Query::Combination#initialize
    0.00 0.00 0.00 0.00 40/40 Picky::Results#initialize
    0.00 0.00 0.00 0.00 156/156 Array#initialize
    0.00 0.00 0.00 0.00 156/156 <Class::Array>#allocate
    0.00 0.00 0.00 0.00 40/40 Picky::Query::Tokens#initialize
    0.00 0.00 0.00 0.00 48/48 Picky::Query::Combinations#initialize
    0.00 0.00 0.00 0.00 40/40 Picky::Query::Allocations#initialize
    0.00 0.00 0.00 0.00 20/20 Regexp#initialize
    0.00 0.00 0.00 0.00 4/4 Picky::Search#initialize
    0.00 0.00 0.00 0.00 1/1 Picky::Tokenizer#initialize
    0.00 0.00 0.00 0.00 4/4 Picky::Query::QualifierCategoryMapper#initialize
    0.00 0.00 0.00 0.00 4/4 Picky::Query::Boosts#initialize
    0.00 0.00 0.00 0.00 20/20 <Class::Regexp>#allocate
    0.00 0.00 0.00 0.00 4/4 CSV#initialize
    0.00 0.00 0.00 0.00 4/4 Hash#initialize
    0.00 0.00 0.00 0.00 4/13 <Class::Hash>#allocate
    0.00 0.00 0.00 0.00 4/4 Searches#initialize
    0.00 0.00 0.00 0.00 4/4 Picky::Query::Indexes#initialize
    0.00 0.00 0.00 0.00 48/48 Array#each
8.74% 0.58% 0.00 0.00 0.00 0.00 48 Picky::Query::Allocation#process! 72
    0.00 0.00 0.00 0.00 48/48 Picky::Query::Allocation#calculate_ids 73
    0.00 0.00 0.00 0.00 48/48 Array#slice! 75
    0.00 0.00 0.00 0.00 48/48 Picky::Query::Allocation#process! 73
7.99% 0.44% 0.00 0.00 0.00 0.00 48 Picky::Query::Allocation#calculate_ids 53
    0.00 0.00 0.00 0.00 48/48 Picky::Backends::Backend#ids 55
    0.00 0.00 0.00 0.00 48/96 Picky::Query::Combinations#empty? 54
    0.00 0.00 0.00 0.00 40/40 Picky::Query::Indexes#allocation_for 124
7.72% 0.97% 0.00 0.00 0.00 0.00 40 Picky::Query::Indexes#expand_combinations_from 189
    0.00 0.00 0.00 0.00 40/120 Array#collect! 206
    0.00 0.00 0.00 0.00 40/40 Enumerable#any? 193
    0.00 0.00 0.00 0.00 40/80 Array#zip 243
    0.00 0.00 0.00 0.00 40/49 Symbol#to_proc 193
    0.00 0.00 0.00 0.00 40/140 Array#shift 243
    0.00 0.00 0.00 0.00 40/484 Array#empty? 241
    0.00 0.00 0.00 0.00 40/464 Enumerable#inject 197
    0.00 0.00 0.00 0.00 108/616 Picky::Category#ids 25
    0.00 0.00 0.00 0.00 508/616 Picky::Category#weight 19
7.50% 4.49% 0.00 0.00 0.00 0.00 616 Picky::Category#bundle_for 30
    0.00 0.00 0.00 0.00 616/616 Picky::Query::Token#partial? 31
    0.00 0.00 0.00 0.00 48/48 Picky::Query::Allocation#calculate_ids 55
7.11% 0.63% 0.00 0.00 0.00 0.00 48 Picky::Backends::Backend#ids 72
    0.00 0.00 0.00 0.00 48/48 Picky::Query::Combinations#inject 75
    0.00 0.00 0.00 0.00 48/48 <Class::Performant::Array>#memory_efficient_intersect 83
    0.00 0.00 0.00 0.00 140/540 String#blank? 105
    0.00 0.00 0.00 0.00 200/540 Picky::Query::Token#similarize 150
    0.00 0.00 0.00 0.00 200/540 Picky::Query::Token#partialize 105
5.47% 2.47% 0.00 0.00 0.00 0.00 540 Kernel#!~
    0.00 0.00 0.00 0.00 540/744 String#=~
    0.00 0.00 0.00 0.00 48/48 Picky::Query::Allocation#calculate_score 43
5.14% 0.32% 0.00 0.00 0.00 0.00 48 Picky::Backends::Backend#weight 53
    0.00 0.00 0.00 0.00 48/48 Picky::Query::Combinations#score 54
    0.00 0.00 0.00 0.00 48/48 Picky::Backends::Backend#weight 54
4.82% 0.26% 0.00 0.00 0.00 0.00 48 Picky::Query::Combinations#score 29
    0.00 0.00 0.00 0.00 48/464 Enumerable#inject 30
    0.00 0.00 0.00 0.00 40/40 Picky::Tokenizer#tokenize 187
4.81% 0.76% 0.00 0.00 0.00 0.00 40 Picky::Tokenizer#pretokenize 218
    0.00 0.00 0.00 0.00 40/40 Picky::Tokenizer#reject 221
    0.00 0.00 0.00 0.00 40/40 Picky::Tokenizer#split 219
    0.00 0.00 0.00 0.00 40/40 Picky::Tokenizer#normalize_with_patterns? 220
    0.00 0.00 0.00 0.00 40/40 Picky::Tokenizer#cap? 222
    0.00 0.00 0.00 0.00 48/48 Picky::Backends::Backend#ids 75
4.73% 0.28% 0.00 0.00 0.00 0.00 48 Picky::Query::Combinations#inject 16
    0.00 0.00 0.00 0.00 48/464 Enumerable#inject 17
    0.00 0.00 0.00 0.00 48/48 Picky::Query::Allocation#calculate_score 43
3.90% 0.31% 0.00 0.00 0.00 0.00 48 Picky::Query::Combinations#boost_for 32
    0.00 0.00 0.00 0.00 48/48 Picky::Query::Boosts#boost_for 33
    0.00 0.00 0.00 0.00 40/140 Picky::Tokenizer#tokenize 186
    0.00 0.00 0.00 0.00 100/140 Array#reject!
3.60% 1.28% 0.00 0.00 0.00 0.00 140 String#blank? 102
    0.00 0.00 0.00 0.00 140/540 Kernel#!~ 105
    0.00 0.00 0.00 0.00 140/140 String#encoding_aware? 104
    0.00 0.00 0.00 0.00 48/48 Picky::Query::Combinations#boost_for 33
3.60% 0.35% 0.00 0.00 0.00 0.00 48 Picky::Query::Boosts#boost_for 63
    0.00 0.00 0.00 0.00 48/48 Picky::Query::Boosts#boost_for_categories 64
    0.00 0.00 0.00 0.00 48/84 Array#map 64
    0.00 0.00 0.00 0.00 120/120 Array#each
3.54% 0.74% 0.00 0.00 0.00 0.00 120 Picky::Query::Combination#ids 44
    0.00 0.00 0.00 0.00 108/108 Picky::Category#ids 45
    0.00 0.00 0.00 0.00 120/120 Array#each
3.41% 0.77% 0.00 0.00 0.00 0.00 120 Picky::Query::Combination#weight 36
    0.00 0.00 0.00 0.00 108/508 Picky::Category#weight 37
    0.00 0.00 0.00 0.00 40/40 Picky::Query::Indexes#allocations_for 108
3.38% 0.23% 0.00 0.00 0.00 0.00 40 Picky::Query::Tokens#categorize 68
    0.00 0.00 0.00 0.00 40/741 Array#each 69
    0.00 0.00 0.00 0.00 40/40 Picky::Tokenizer#pretokenize 221
3.04% 0.25% 0.00 0.00 0.00 0.00 40 Picky::Tokenizer#reject 126
    0.00 0.00 0.00 0.00 40/40 Array#reject! 127
    0.00 0.00 0.00 0.00 616/616 Picky::Category#bundle_for 31
3.01% 3.01% 0.00 0.00 0.00 0.00 616 Picky::Query::Token#partial? 88
    0.00 0.00 0.00 0.00 4/744 CSV#init_separators 2058
    0.00 0.00 0.00 0.00 200/744 Array#each
    0.00 0.00 0.00 0.00 540/744 Kernel#!~
2.99% 2.99% 0.00 0.00 0.00 0.00 744 String#=~
    0.00 0.00 0.00 0.00 100/100 Picky::Query::Token#process 42
2.95% 0.96% 0.00 0.00 0.00 0.00 100 Picky::Query::Token#partialize 103
    0.00 0.00 0.00 0.00 200/540 Kernel#!~ 105
    0.00 0.00 0.00 0.00 108/108 Picky::Query::Combination#ids 45
2.81% 0.90% 0.00 0.00 0.00 0.00 108 Picky::Category#ids 24
    0.00 0.00 0.00 0.00 108/616 Picky::Category#bundle_for 25
    0.00 0.00 0.00 0.00 108/108 Picky::Bundle#ids 25
    0.00 0.00 0.00 0.00 40/40 Picky::Tokenizer#reject 127
2.79% 0.35% 0.00 0.00 0.00 0.00 40 Array#reject!
    0.00 0.00 0.00 0.00 100/140 String#blank?
    0.00 0.00 0.00 0.00 100/100 Picky::Query::Token#process 43
2.78% 0.99% 0.00 0.00 0.00 0.00 100 Picky::Query::Token#similarize 148
    0.00 0.00 0.00 0.00 200/540 Kernel#!~ 150
    0.00 0.00 0.00 0.00 40/40 Picky::Query::Indexes#allocation_for 128
2.73% 0.39% 0.00 0.00 0.00 0.00 40 Array#map!
    0.00 0.00 0.00 0.00 96/629 Class#new
    0.00 0.00 0.00 0.00 100/100 Array#each
2.61% 0.63% 0.00 0.00 0.00 0.00 100 Picky::Query::Token#categorize 62
    0.00 0.00 0.00 0.00 100/100 Picky::Query::Token#extract_predefined 63
    0.00 0.00 0.00 0.00 508/508 Picky::Category#weight 19
2.58% 2.58% 0.00 0.00 0.00 0.00 508 Picky::Bundle#weight 49
    0.00 0.00 0.00 0.00 80/80 Picky::Helpers::Measuring#timed 17
2.11% 0.70% 0.00 0.00 0.00 0.00 80 Time#to_f
    0.00 0.00 0.00 0.00 80/80 Numeric#quo
    0.00 0.00 0.00 0.00 80/80 Rational#to_f
    0.00 0.00 0.00 0.00 100/100 Picky::Query::Token#categorize 63
1.98% 0.93% 0.00 0.00 0.00 0.00 100 Picky::Query::Token#extract_predefined 65
    0.00 0.00 0.00 0.00 100/100 Picky::Query::QualifierCategoryMapper#restrict 67
    0.00 0.00 0.00 0.00 100/100 Picky::Query::Token#categorize_with 66
    0.00 0.00 0.00 0.00 100/100 Picky::Query::Token#process 41
1.95% 1.49% 0.00 0.00 0.00 0.00 100 Picky::Query::Token#qualify 224
    0.00 0.00 0.00 0.00 100/180 String#split 225
    0.00 0.00 0.00 0.00 48/48 Picky::Query::Boosts#boost_for 64
1.95% 0.31% 0.00 0.00 0.00 0.00 48 Picky::Query::Boosts#boost_for_categories 50
    0.00 0.00 0.00 0.00 48/48 Array#clustered_uniq_fast 51
    0.00 0.00 0.00 0.00 48/48 Picky::Backends::Backend#ids 83
1.75% 0.41% 0.00 0.00 0.00 0.00 48 <Class::Performant::Array>#memory_efficient_intersect
    0.00 0.00 0.00 0.00 48/48 Array#sort_by!
    0.00 0.00 0.00 0.00 80/80 Picky::Helpers::Measuring#timed 17
1.71% 0.49% 0.00 0.00 0.00 0.00 80 <Class::Time>#now
    0.00 0.00 0.00 0.00 80/80 Time#initialize
    0.00 0.00 0.00 0.00 80/80 <Class::Time>#allocate
    0.00 0.00 0.00 0.00 48/48 Picky::Query::Boosts#boost_for_categories 51
1.64% 0.45% 0.00 0.00 0.00 0.00 48 Array#clustered_uniq_fast 19
    0.00 0.00 0.00 0.00 48/464 Enumerable#inject 21
    0.00 0.00 0.00 0.00 40/40 Picky::Tokenizer#tokenize 189
1.53% 0.32% 0.00 0.00 0.00 0.00 40 Picky::Tokenizer#tokens_for 228
    0.00 0.00 0.00 0.00 40/120 Array#collect! 229
    0.00 0.00 0.00 0.00 40/40 Picky::Tokenizer#downcase? 229
    0.00 0.00 0.00 0.00 449/449 Class#new
1.46% 1.46% 0.00 0.00 0.00 0.00 449 <Class::BasicObject>#allocate
    0.00 0.00 0.00 0.00 100/100 Picky::Query::Token#process 44
1.43% 0.87% 0.00 0.00 0.00 0.00 100 Picky::Query::Token#remove_illegals 193
    0.00 0.00 0.00 0.00 100/100 String#gsub! 196
    0.00 0.00 0.00 0.00 40/40 Picky::Search#tokenized 231
1.40% 0.45% 0.00 0.00 0.00 0.00 40 Picky::Query::Tokens#partialize_last 62
    0.00 0.00 0.00 0.00 40/40 Picky::Query::Token#partial= 63
    0.00 0.00 0.00 0.00 40/40 Picky::Query::Tokens#empty? 63
    0.00 0.00 0.00 0.00 40/44 Array#last 63
    0.00 0.00 0.00 0.00 40/40 Picky::Tokenizer#tokenize 185
1.36% 0.60% 0.00 0.00 0.00 0.00 40 Picky::Tokenizer#preprocess 200
    0.00 0.00 0.00 0.00 40/40 Picky::Tokenizer#remove_illegals 202
    0.00 0.00 0.00 0.00 40/40 Picky::Tokenizer#substitute_characters 201
    0.00 0.00 0.00 0.00 40/40 Picky::Tokenizer#remove_non_single_stopwords 208
    0.00 0.00 0.00 0.00 48/48 <Class::Performant::Array>#memory_efficient_intersect
1.34% 0.31% 0.00 0.00 0.00 0.00 48 Array#sort_by!
    0.00 0.00 0.00 0.00 48/48 Enumerable#sort_by
    0.00 0.00 0.00 0.00 32/84 CSV#encode_str 2317
    0.00 0.00 0.00 0.00 4/84 <Class::Picky::Query::IndexesCheck>#check_backends 18
    0.00 0.00 0.00 0.00 48/84 Picky::Query::Boosts#boost_for 64
1.30% 0.64% 0.00 0.00 0.00 0.00 84 Array#map
    0.00 0.00 0.00 0.00 120/120 Picky::Query::Combination#category_name
    0.00 0.00 0.00 0.00 4/52 Picky::Index#backend
    0.00 0.00 0.00 0.00 76/96 String#encode
    0.00 0.00 0.00 0.00 76/76 Encoding#name
    0.00 0.00 0.00 0.00 48/48 Class#new
1.17% 0.56% 0.00 0.00 0.00 0.00 48 Picky::Query::Allocation#initialize 23
    0.00 0.00 0.00 0.00 48/48 Picky::Index#result_identifier 28
    0.00 0.00 0.00 0.00 48/52 Picky::Index#backend 29
    0.00 0.00 0.00 0.00 48/48 Array#sort_by!
1.03% 0.60% 0.00 0.00 0.00 0.00 48 Enumerable#sort_by
    0.00 0.00 0.00 0.00 72/72 Fixnum#<=>
    0.00 0.00 0.00 0.00 48/741 Array#each
    0.00 0.00 0.00 0.00 120/484 Kernel#loop
    0.00 0.00 0.00 0.00 40/484 Picky::Query::Indexes#expand_combinations_from 241
    0.00 0.00 0.00 0.00 40/484 Picky::Tokenizer#tokenize 188
    0.00 0.00 0.00 0.00 40/484 Picky::Query::Tokens#empty? 15
    0.00 0.00 0.00 0.00 96/484 Picky::Query::Combinations#empty? 17
    0.00 0.00 0.00 0.00 148/484 Array#each
0.99% 0.99% 0.00 0.00 0.00 0.00 484 Array#empty?
    0.00 0.00 0.00 0.00 48/96 Picky::Query::Allocation#calculate_ids 54
    0.00 0.00 0.00 0.00 48/96 Picky::Query::Allocation#calculate_score 44
0.91% 0.65% 0.00 0.00 0.00 0.00 96 Picky::Query::Combinations#empty? 16
    0.00 0.00 0.00 0.00 96/484 Array#empty? 17
    0.00 0.00 0.00 0.00 40/180 Kernel#loop
    0.00 0.00 0.00 0.00 40/180 Picky::Tokenizer#split 84
    0.00 0.00 0.00 0.00 100/180 Picky::Query::Token#qualify 225
0.87% 0.87% 0.00 0.00 0.00 0.00 180 String#split
    0.00 0.00 0.00 0.00 40/40 Picky::Query::Indexes#expand_combinations_from 193
0.82% 0.21% 0.00 0.00 0.00 0.00 40 Enumerable#any?
    0.00 0.00 0.00 0.00 40/741 Array#each
    0.00 0.00 0.00 0.00 100/100 Class#new
0.78% 0.78% 0.00 0.00 0.00 0.00 100 Picky::Query::Token#initialize 25
    0.00 0.00 0.00 0.00 80/80 Time#to_f
0.74% 0.41% 0.00 0.00 0.00 0.00 80 Numeric#quo
    0.00 0.00 0.00 0.00 80/80 Rational#/
    0.00 0.00 0.00 0.00 80/80 <Class::Time>#now
0.71% 0.46% 0.00 0.00 0.00 0.00 80 Time#initialize
    0.00 0.00 0.00 0.00 80/128 Fixnum#+
    0.00 0.00 0.00 0.00 108/108 Class#new
0.68% 0.68% 0.00 0.00 0.00 0.00 108 Picky::Query::Combination#initialize 15
    0.00 0.00 0.00 0.00 80/80 Time#to_f
0.67% 0.42% 0.00 0.00 0.00 0.00 80 Rational#to_f
    0.00 0.00 0.00 0.00 80/80 Fixnum#fdiv
    0.00 0.00 0.00 0.00 120/120 Array#map
0.66% 0.66% 0.00 0.00 0.00 0.00 120 Picky::Query::Combination#category_name 22
    0.00 0.00 0.00 0.00 100/100 Picky::Query::Token#extract_predefined 67
0.63% 0.63% 0.00 0.00 0.00 0.00 100 Picky::Query::QualifierCategoryMapper#restrict 46
    0.00 0.00 0.00 0.00 140/140 String#blank? 104
0.62% 0.62% 0.00 0.00 0.00 0.00 140 String#encoding_aware? 3
    0.00 0.00 0.00 0.00 40/40 Picky::Tokenizer#pretokenize 219
0.62% 0.20% 0.00 0.00 0.00 0.00 40 Picky::Tokenizer#split 83
    0.00 0.00 0.00 0.00 40/180 String#split 84
    0.00 0.00 0.00 0.00 108/108 Picky::Category#ids 25
0.57% 0.57% 0.00 0.00 0.00 0.00 108 Picky::Bundle#ids 26
    0.00 0.00 0.00 0.00 100/100 Picky::Query::Token#remove_illegals 196
0.56% 0.56% 0.00 0.00 0.00 0.00 100 String#gsub!
    0.00 0.00 0.00 0.00 80/80 <Class::Time>#now
0.51% 0.51% 0.00 0.00 0.00 0.00 80 <Class::Time>#allocate
    0.00 0.00 0.00 0.00 100/100 Picky::Categories#possible_for 50
0.50% 0.50% 0.00 0.00 0.00 0.00 100 Picky::Categories#possible_categories 64
    0.00 0.00 0.00 0.00 100/100 Picky::Categories#possible_combinations 16
0.50% 0.50% 0.00 0.00 0.00 0.00 100 Picky::Query::Token#similar? 187
    0.00 0.00 0.00 0.00 40/40 Picky::Query::Indexes#prepared_allocations_for 91
0.46% 0.20% 0.00 0.00 0.00 0.00 40 Picky::Query::Allocations#sort! 39
    0.00 0.00 0.00 0.00 40/40 Array#sort! 40
    0.00 0.00 0.00 0.00 40/40 Picky::Query::Tokens#partialize_last 63
0.45% 0.32% 0.00 0.00 0.00 0.00 40 Picky::Query::Token#partial= 79
    0.00 0.00 0.00 0.00 40/48 NilClass#nil? 80
    0.00 0.00 0.00 0.00 100/100 Picky::Query::Token#extract_predefined 66
0.42% 0.42% 0.00 0.00 0.00 0.00 100 Picky::Query::Token#categorize_with 69
    0.00 0.00 0.00 0.00 48/128 Array#each
    0.00 0.00 0.00 0.00 80/128 Time#initialize
0.42% 0.42% 0.00 0.00 0.00 0.00 128 Fixnum#+
    0.00 0.00 0.00 0.00 40/40 Class#new
0.41% 0.41% 0.00 0.00 0.00 0.00 40 Picky::Results#initialize 18
    0.00 0.00 0.00 0.00 156/156 Class#new
0.40% 0.40% 0.00 0.00 0.00 0.00 156 Array#initialize
    0.00 0.00 0.00 0.00 40/40 Picky::Query::Tokens#partialize_last 63
0.38% 0.27% 0.00 0.00 0.00 0.00 40 Picky::Query::Tokens#empty? 14
    0.00 0.00 0.00 0.00 40/484 Array#empty? 15
    0.00 0.00 0.00 0.00 40/80 Picky::Query::Indexes#expand_combinations_from 243
    0.00 0.00 0.00 0.00 40/80 <Class::Picky::Query::Tokens>#processed 27
0.37% 0.37% 0.00 0.00 0.00 0.00 80 Array#zip
    0.00 0.00 0.00 0.00 100/100 Array#collect!
0.36% 0.36% 0.00 0.00 0.00 0.00 100 Array#*
    0.00 0.00 0.00 0.00 80/80 Numeric#quo
0.33% 0.33% 0.00 0.00 0.00 0.00 80 Rational#/
    0.00 0.00 0.00 0.00 156/156 Class#new
0.33% 0.33% 0.00 0.00 0.00 0.00 156 <Class::Array>#allocate
    0.00 0.00 0.00 0.00 4/110 Numeric#nonzero?
    0.00 0.00 0.00 0.00 6/110 Array#each
    0.00 0.00 0.00 0.00 100/110 Array#collect!
0.31% 0.31% 0.00 0.00 0.00 0.00 110 Fixnum#zero?
    0.00 0.00 0.00 0.00 40/40 Picky::Tokenizer#preprocess 202
0.31% 0.31% 0.00 0.00 0.00 0.00 40 Picky::Tokenizer#remove_illegals 69
    0.00 0.00 0.00 0.00 48/48 Picky::Query::Allocation#initialize 28
0.31% 0.31% 0.00 0.00 0.00 0.00 48 Picky::Index#result_identifier 18
    0.00 0.00 0.00 0.00 100/100 Array#collect!
0.31% 0.31% 0.00 0.00 0.00 0.00 100 String#downcase!
    0.00 0.00 0.00 0.00 4/52 Array#map
    0.00 0.00 0.00 0.00 48/52 Picky::Query::Allocation#initialize 29
0.30% 0.30% 0.00 0.00 0.00 0.00 52 Picky::Index#backend 135
    0.00 0.00 0.00 0.00 40/40 Picky::Tokenizer#preprocess 201
0.26% 0.26% 0.00 0.00 0.00 0.00 40 Picky::Tokenizer#substitute_characters 117
    0.00 0.00 0.00 0.00 40/40 Picky::Query::Allocations#sort! 40
0.26% 0.18% 0.00 0.00 0.00 0.00 40 Array#sort!
    0.00 0.00 0.00 0.00 8/8 Picky::Query::Allocation#<=>
    0.00 0.00 0.00 0.00 80/80 Rational#to_f
0.26% 0.26% 0.00 0.00 0.00 0.00 80 Fixnum#fdiv
    0.00 0.00 0.00 0.00 40/40 Class#new
0.25% 0.25% 0.00 0.00 0.00 0.00 40 Picky::Query::Tokens#initialize 19
    0.00 0.00 0.00 0.00 48/48 Class#new
0.24% 0.24% 0.00 0.00 0.00 0.00 48 Picky::Query::Combinations#initialize 21
    0.00 0.00 0.00 0.00 80/80 Picky::Search#search 185
0.23% 0.23% 0.00 0.00 0.00 0.00 80 Integer#to_i
    0.00 0.00 0.00 0.00 72/72 Enumerable#sort_by
0.23% 0.23% 0.00 0.00 0.00 0.00 72 Fixnum#<=>
    0.00 0.00 0.00 0.00 40/40 Picky::Tokenizer#tokens_for 229
0.22% 0.22% 0.00 0.00 0.00 0.00 40 Picky::Tokenizer#downcase? 137
    0.00 0.00 0.00 0.00 40/40 Picky::Tokenizer#pretokenize 220
0.22% 0.22% 0.00 0.00 0.00 0.00 40 Picky::Tokenizer#normalize_with_patterns? 106
    0.00 0.00 0.00 0.00 40/40 Class#new
0.20% 0.20% 0.00 0.00 0.00 0.00 40 Picky::Query::Allocations#initialize 25
    0.00 0.00 0.00 0.00 8/88 CSV#init_separators 2046
    0.00 0.00 0.00 0.00 8/88 CSV#init_converters 2152
    0.00 0.00 0.00 0.00 72/88 Array#each
0.20% 0.20% 0.00 0.00 0.00 0.00 88 Symbol#==
    0.00 0.00 0.00 0.00 48/48 Picky::Query::Allocation#calculate_score 43
0.20% 0.20% 0.00 0.00 0.00 0.00 48 Float#+
    0.00 0.00 0.00 0.00 40/40 Picky::Search#search_with 198
0.20% 0.20% 0.00 0.00 0.00 0.00 40 Float#round
    0.00 0.00 0.00 0.00 40/40 Picky::Tokenizer#pretokenize 222
0.19% 0.19% 0.00 0.00 0.00 0.00 40 Picky::Tokenizer#cap? 150
    0.00 0.00 0.00 0.00 40/40 Picky::Tokenizer#preprocess 208
0.18% 0.18% 0.00 0.00 0.00 0.00 40 Picky::Tokenizer#remove_non_single_stopwords 54
    0.00 0.00 0.00 0.00 48/48 Picky::Query::Allocation#process! 75
0.18% 0.18% 0.00 0.00 0.00 0.00 48 Array#slice!
    0.00 0.00 0.00 0.00 8/49 <Class::Picky::Query::IndexesCheck>#check_backends 19
    0.00 0.00 0.00 0.00 1/49 Picky::Tokenizer#default_options 175
    0.00 0.00 0.00 0.00 40/49 Picky::Query::Indexes#expand_combinations_from 193
0.16% 0.16% 0.00 0.00 0.00 0.00 49 Symbol#to_proc
    0.00 0.00 0.00 0.00 4/4 Kernel#proc
    0.00 0.00 0.00 0.00 40/140 CSV#each 22
    0.00 0.00 0.00 0.00 60/140 Integer#times
    0.00 0.00 0.00 0.00 40/140 Picky::Query::Indexes#expand_combinations_from 243
0.14% 0.14% 0.00 0.00 0.00 0.00 140 Array#shift
    0.00 0.00 0.00 0.00 8/48 CSV#init_converters 2162
    0.00 0.00 0.00 0.00 40/48 Picky::Query::Token#partial= 80
0.13% 0.13% 0.00 0.00 0.00 0.00 48 NilClass#nil?
    0.00 0.00 0.00 0.00 4/44 <Class::CSV>#open 1337
    0.00 0.00 0.00 0.00 40/44 Picky::Query::Tokens#partialize_last 63
0.12% 0.12% 0.00 0.00 0.00 0.00 44 Array#last
    0.00 0.00 0.00 0.00 8/48 CSV#init_separators 2102
    0.00 0.00 0.00 0.00 40/48 Picky::Helpers::Measuring#timed 11
0.12% 0.12% 0.00 0.00 0.00 0.00 48 Kernel#lambda
    0.00 0.00 0.00 0.00 12/52 CSV#init_separators 2087
    0.00 0.00 0.00 0.00 40/52 Picky::Tokenizer#tokenize 185
0.11% 0.11% 0.00 0.00 0.00 0.00 52 String#to_s
    0.00 0.00 0.00 0.00 8/8 Array#sort!
0.09% 0.06% 0.00 0.00 0.00 0.00 8 Picky::Query::Allocation#<=> 99
    0.00 0.00 0.00 0.00 8/8 Float#<=> 100
    0.00 0.00 0.00 0.00 8/8 Picky::Query::Allocation#<=> 100
0.03% 0.03% 0.00 0.00 0.00 0.00 8 Float#<=>
    0.00 0.00 0.00 0.00 4/4 Symbol#to_proc
0.01% 0.01% 0.00 0.00 0.00 0.00 4 Kernel#proc
    0.00 0.00 0.00 0.00 4/4 CSV#initialize 1590
0.00% 0.00% 0.00 0.00 0.00 0.00 4 CSV#init_separators 2021
    0.00 0.00 0.00 0.00 8/48 Kernel#lambda 2102
    0.00 0.00 0.00 0.00 4/4 String#== 2083
    0.00 0.00 0.00 0.00 4/4 Numeric#nonzero? 2071
    0.00 0.00 0.00 0.00 4/4 IO#rewind 2065
    0.00 0.00 0.00 0.00 4/744 String#=~ 2058
    0.00 0.00 0.00 0.00 4/20 CSV#encode_re 2058
    0.00 0.00 0.00 0.00 4/4 String#end_with? 2053
    0.00 0.00 0.00 0.00 8/32 CSV#encode_str 2098
    0.00 0.00 0.00 0.00 4/44 IO#gets 2051
    0.00 0.00 0.00 0.00 4/4 IO#pos 2045
    0.00 0.00 0.00 0.00 4/4 Array#include? 2037
    0.00 0.00 0.00 0.00 8/88 Symbol#== 2046
    0.00 0.00 0.00 0.00 12/96 String#encode 2087
    0.00 0.00 0.00 0.00 12/52 String#to_s 2087
    0.00 0.00 0.00 0.00 16/60 Hash#delete 2090
    0.00 0.00 0.00 0.00 4/4 <Class::Picky::Query::IndexesCheck>#check_backends 19
0.00% 0.00% 0.00 0.00 0.00 0.00 4 Array#uniq!
    0.00 0.00 0.00 0.00 4/4 Picky::Query::Indexes#initialize 33
0.00% 0.00% 0.00 0.00 0.00 0.00 4 Picky::Query::Indexes#remap_qualifiers 43
    0.00 0.00 0.00 0.00 4/629 Class#new 44
    0.00 0.00 0.00 0.00 4/4 Picky::Query::Indexes#initialize 29
0.00% 0.00% 0.00 0.00 0.00 0.00 4 <Class::Picky::Query::IndexesCheck>#check_backends 17
    0.00 0.00 0.00 0.00 4/4 Array#uniq! 19
    0.00 0.00 0.00 0.00 4/84 Array#map 18
    0.00 0.00 0.00 0.00 8/49 Symbol#to_proc 19
    0.00 0.00 0.00 0.00 4/4 Class#new
0.00% 0.00% 0.00 0.00 0.00 0.00 4 Picky::Query::Indexes#initialize 28
    0.00 0.00 0.00 0.00 4/4 Picky::Query::Indexes#remap_qualifiers 33
    0.00 0.00 0.00 0.00 4/4 <Class::Picky::Query::IndexesCheck>#check_backends 29
    0.00 0.00 0.00 0.00 4/4 Class#new
0.00% 0.00% 0.00 0.00 0.00 0.00 4 Picky::Search#initialize 42
    0.00 0.00 0.00 0.00 4/4 <Class::Picky::Tokenizer>#searching 47
    0.00 0.00 0.00 0.00 4/12 Kernel#block_given? 45
    0.00 0.00 0.00 0.00 8/629 Class#new 48
    0.00 0.00 0.00 0.00 4/4 Class#new
0.00% 0.00% 0.00 0.00 0.00 0.00 4 Picky::Query::QualifierCategoryMapper#initialize 15
    0.00 0.00 0.00 0.00 4/741 Array#each 17
    0.00 0.00 0.00 0.00 40/40 CSV#each 19
0.00% 0.00% 0.00 0.00 0.00 0.00 40 Integer#times
    0.00 0.00 0.00 0.00 60/140 Array#shift
    0.00 0.00 0.00 0.00 40/40 CSV#each 17
0.00% 0.00% 0.00 0.00 0.00 0.00 40 Array#first
    0.00 0.00 0.00 0.00 200/200 Array#each
0.00% 0.00% 0.00 0.00 0.00 0.00 200 String#[]
    0.00 0.00 0.00 0.00 4/4 Array#each
0.00% 0.00% 0.00 0.00 0.00 0.00 4 Picky::Search#terminate_early 111
    0.00 0.00 0.00 0.00 4/8 Kernel#respond_to? 112
    0.00 0.00 0.00 0.00 40/240 Kernel#loop
    0.00 0.00 0.00 0.00 200/240 Array#each
0.00% 0.00% 0.00 0.00 0.00 0.00 240 String#empty?
    0.00 0.00 0.00 0.00 4/4 Array#each
0.00% 0.00% 0.00 0.00 0.00 0.00 4 Picky::Index#each_category 6
    0.00 0.00 0.00 0.00 4/4 Picky::Categories#each_category 7
    0.00 0.00 0.00 0.00 40/40 Kernel#loop
0.00% 0.00% 0.00 0.00 0.00 0.00 40 String#sub!
    0.00 0.00 0.00 0.00 40/40 CSV#shift 1849
0.00% 0.00% 0.00 0.00 0.00 0.00 40 Kernel#loop
    0.00 0.00 0.00 0.00 40/741 Array#each
    0.00 0.00 0.00 0.00 40/180 String#split
    0.00 0.00 0.00 0.00 40/240 String#empty?
    0.00 0.00 0.00 0.00 120/484 Array#empty?
    0.00 0.00 0.00 0.00 40/40 String#sub!
    0.00 0.00 0.00 0.00 40/44 IO#gets
    0.00 0.00 0.00 0.00 40/40 CSV#shift 1833
0.00% 0.00% 0.00 0.00 0.00 0.00 40 CSV#header_row? 1815
    0.00 0.00 0.00 0.00 40/40 CSV#each 24
0.00% 0.00% 0.00 0.00 0.00 0.00 40 CSV#shift 1826
    0.00 0.00 0.00 0.00 40/40 Kernel#loop 1849
    0.00 0.00 0.00 0.00 40/629 Class#new 1847
    0.00 0.00 0.00 0.00 40/40 CSV#header_row? 1833
    0.00 0.00 0.00 0.00 4/4 Searches#prepare 15
0.00% 0.00% 0.00 0.00 0.00 0.00 4 CSV#each 1789
    0.00 0.00 0.00 0.00 40/72 Array#join 23
    0.00 0.00 0.00 0.00 40/140 Array#shift 22
    0.00 0.00 0.00 0.00 40/40 Integer#times 19
    0.00 0.00 0.00 0.00 40/40 Array#first 17
    0.00 0.00 0.00 0.00 40/40 CSV#shift 24
    0.00 0.00 0.00 0.00 4/12 Kernel#block_given? 1790
    0.00 0.00 0.00 0.00 4/12 <Class::CSV>#open 1352
    0.00 0.00 0.00 0.00 4/12 CSV#each 1790
    0.00 0.00 0.00 0.00 4/12 Picky::Search#initialize 45
0.00% 0.00% 0.00 0.00 0.00 0.00 12 Kernel#block_given?
    0.00 0.00 0.00 0.00 4/4 CSV#initialize 1598
0.00% 0.00% 0.00 0.00 0.00 0.00 4 Hash#empty?
    0.00 0.00 0.00 0.00 4/4 CSV#initialize 1593
0.00% 0.00% 0.00 0.00 0.00 0.00 4 CSV#init_headers 2181
    0.00 0.00 0.00 0.00 4/8 CSV#init_converters 2189
    0.00 0.00 0.00 0.00 12/60 Hash#delete 2184
    0.00 0.00 0.00 0.00 4/4 Picky::Index#each_category 7
0.00% 0.00% 0.00 0.00 0.00 0.00 4 Picky::Categories#each_category 10
    0.00 0.00 0.00 0.00 4/741 Array#each 11
    0.00 0.00 0.00 0.00 8/8 CSV#init_converters 2159
0.00% 0.00% 0.00 0.00 0.00 0.00 8 Kernel#method
    0.00 0.00 0.00 0.00 8/8 CSV#init_converters 2159
0.00% 0.00% 0.00 0.00 0.00 0.00 8 String#sub
    0.00 0.00 0.00 0.00 8/8 CSV#init_converters 2156
0.00% 0.00% 0.00 0.00 0.00 0.00 8 Kernel#instance_variable_set
    0.00 0.00 0.00 0.00 16/16 Array#each
0.00% 0.00% 0.00 0.00 0.00 0.00 16 Picky::Query::QualifierCategoryMapper#add 26
    0.00 0.00 0.00 0.00 16/741 Array#each 27
    0.00 0.00 0.00 0.00 16/16 Picky::Category#qualifiers 27
    0.00 0.00 0.00 0.00 16/16 Picky::Query::QualifierCategoryMapper#add 27
0.00% 0.00% 0.00 0.00 0.00 0.00 16 Picky::Category#qualifiers 118
    0.00 0.00 0.00 0.00 16/16 CSV#init_converters 2159
0.00% 0.00% 0.00 0.00 0.00 0.00 16 Symbol#to_s
    0.00 0.00 0.00 0.00 4/8 CSV#initialize 1592
    0.00 0.00 0.00 0.00 4/8 CSV#init_headers 2189
0.00% 0.00% 0.00 0.00 0.00 0.00 8 CSV#init_converters 2151
    0.00 0.00 0.00 0.00 8/48 NilClass#nil? 2162
    0.00 0.00 0.00 0.00 8/8 Kernel#method 2159
    0.00 0.00 0.00 0.00 8/8 String#sub 2159
    0.00 0.00 0.00 0.00 8/8 Kernel#instance_variable_set 2156
    0.00 0.00 0.00 0.00 8/629 Class#new 2156
    0.00 0.00 0.00 0.00 16/16 Symbol#to_s 2159
    0.00 0.00 0.00 0.00 12/60 Hash#delete 2177
    0.00 0.00 0.00 0.00 8/88 Symbol#== 2152
    0.00 0.00 0.00 0.00 8/8 CSV#escape_re 2301
0.00% 0.00% 0.00 0.00 0.00 0.00 8 String#gsub
    0.00 0.00 0.00 0.00 8/8 CSV#init_parsers 2127
0.00% 0.00% 0.00 0.00 0.00 0.00 8 CSV#escape_re 2300
    0.00 0.00 0.00 0.00 8/8 String#gsub 2301
    0.00 0.00 0.00 0.00 4/4 CSV#initialize 1591
0.00% 0.00% 0.00 0.00 0.00 0.00 4 CSV#init_parsers 2120
    0.00 0.00 0.00 0.00 4/32 CSV#encode_str 2128
    0.00 0.00 0.00 0.00 16/20 CSV#encode_re 2128
    0.00 0.00 0.00 0.00 8/8 CSV#escape_re 2127
    0.00 0.00 0.00 0.00 8/60 Hash#delete 2123
    0.00 0.00 0.00 0.00 16/16 Array#each
0.00% 0.00% 0.00 0.00 0.00 0.00 16 Symbol#intern
    0.00 0.00 0.00 0.00 4/8 String#==
    0.00 0.00 0.00 0.00 4/8 Kernel#respond_to?
0.00% 0.00% 0.00 0.00 0.00 0.00 8 Kernel#respond_to_missing?
    0.00 0.00 0.00 0.00 4/4 CSV#init_separators 2083
0.00% 0.00% 0.00 0.00 0.00 0.00 4 String#==
    0.00 0.00 0.00 0.00 4/8 Kernel#respond_to_missing?
    0.00 0.00 0.00 0.00 16/16 Array#each
0.00% 0.00% 0.00 0.00 0.00 0.00 16 Hash#has_key?
    0.00 0.00 0.00 0.00 4/4 CSV#init_separators 2071
0.00% 0.00% 0.00 0.00 0.00 0.00 4 Numeric#nonzero?
    0.00 0.00 0.00 0.00 4/110 Fixnum#zero?
    0.00 0.00 0.00 0.00 16/16 Array#each
0.00% 0.00% 0.00 0.00 0.00 0.00 16 Hash#[]=
    0.00 0.00 0.00 0.00 4/4 Picky::Search#initialize 47
0.00% 0.00% 0.00 0.00 0.00 0.00 4 <Class::Picky::Tokenizer>#searching 23
    0.00 0.00 0.00 0.00 1/629 Class#new 24
    0.00 0.00 0.00 0.00 20/20 Class#new
0.00% 0.00% 0.00 0.00 0.00 0.00 20 Regexp#initialize
    0.00 0.00 0.00 0.00 20/20 Class#new
0.00% 0.00% 0.00 0.00 0.00 0.00 20 <Class::Regexp>#allocate
    0.00 0.00 0.00 0.00 4/20 CSV#init_separators 2058
    0.00 0.00 0.00 0.00 16/20 CSV#init_parsers 2128
0.00% 0.00% 0.00 0.00 0.00 0.00 20 CSV#encode_re 2308
    0.00 0.00 0.00 0.00 20/629 Class#new 2309
    0.00 0.00 0.00 0.00 20/32 CSV#encode_str 2309
    0.00 0.00 0.00 0.00 4/4 CSV#init_separators 2053
0.00% 0.00% 0.00 0.00 0.00 0.00 4 String#end_with?
    0.00 0.00 0.00 0.00 32/72 CSV#encode_str 2317
    0.00 0.00 0.00 0.00 40/72 CSV#each 23
0.00% 0.00% 0.00 0.00 0.00 0.00 72 Array#join
    0.00 0.00 0.00 0.00 76/76 Array#map
0.00% 0.00% 0.00 0.00 0.00 0.00 76 Encoding#name
    0.00 0.00 0.00 0.00 1/1 Class#new
0.00% 0.00% 0.00 0.00 0.00 0.00 1 Picky::Tokenizer#initialize 163
    0.00 0.00 0.00 0.00 1/1 Hash#each 165
    0.00 0.00 0.00 0.00 1/9 Hash#merge 164
    0.00 0.00 0.00 0.00 1/1 Picky::Tokenizer#default_options 164
    0.00 0.00 0.00 0.00 8/32 CSV#init_separators 2098
    0.00 0.00 0.00 0.00 20/32 CSV#encode_re 2309
    0.00 0.00 0.00 0.00 4/32 CSV#init_parsers 2128
0.00% 0.00% 0.00 0.00 0.00 0.00 32 CSV#encode_str 2316
    0.00 0.00 0.00 0.00 32/72 Array#join 2317
    0.00 0.00 0.00 0.00 32/84 Array#map 2317
    0.00 0.00 0.00 0.00 4/44 CSV#init_separators 2051
    0.00 0.00 0.00 0.00 40/44 Kernel#loop
0.00% 0.00% 0.00 0.00 0.00 0.00 44 IO#gets
    0.00 0.00 0.00 0.00 4/4 CSV#init_separators 2045
0.00% 0.00% 0.00 0.00 0.00 0.00 4 IO#pos
    0.00 0.00 0.00 0.00 16/16 Array#include?
0.00% 0.00% 0.00 0.00 0.00 0.00 16 BasicObject#==
    0.00 0.00 0.00 0.00 4/4 CSV#init_separators 2037
0.00% 0.00% 0.00 0.00 0.00 0.00 4 Array#include?
    0.00 0.00 0.00 0.00 16/16 BasicObject#==
    0.00 0.00 0.00 0.00 1/1 Picky::Tokenizer#initialize 164
0.00% 0.00% 0.00 0.00 0.00 0.00 1 Picky::Tokenizer#default_options 171
    0.00 0.00 0.00 0.00 1/49 Symbol#to_proc 175
    0.00 0.00 0.00 0.00 1/1 Picky::Tokenizer#initialize 165
0.00% 0.00% 0.00 0.00 0.00 0.00 1 Hash#each
    0.00 0.00 0.00 0.00 1/1 Picky::Tokenizer#rejects_token_if
    0.00 0.00 0.00 0.00 1/1 Picky::Tokenizer#splits_text_on
    0.00 0.00 0.00 0.00 2/2 Kernel#nil?
    0.00 0.00 0.00 0.00 16/60 CSV#init_separators 2090
    0.00 0.00 0.00 0.00 8/60 CSV#init_parsers 2123
    0.00 0.00 0.00 0.00 12/60 CSV#init_converters 2177
    0.00 0.00 0.00 0.00 12/60 CSV#init_headers 2184
    0.00 0.00 0.00 0.00 12/60 CSV#initialize 1597
0.00% 0.00% 0.00 0.00 0.00 0.00 60 Hash#delete
    0.00 0.00 0.00 0.00 4/4 Class#new
0.00% 0.00% 0.00 0.00 0.00 0.00 4 Picky::Query::Boosts#initialize 35
    0.00 0.00 0.00 0.00 8/96 CSV#initialize 1587
    0.00 0.00 0.00 0.00 12/96 CSV#init_separators 2087
    0.00 0.00 0.00 0.00 76/96 Array#map
0.00% 0.00% 0.00 0.00 0.00 0.00 96 String#encode
    0.00 0.00 0.00 0.00 4/4 CSV#raw_encoding 2328
0.00% 0.00% 0.00 0.00 0.00 0.00 4 IO#external_encoding
    0.00 0.00 0.00 0.00 4/4 CSV#raw_encoding 2328
0.00% 0.00% 0.00 0.00 0.00 0.00 4 IO#internal_encoding
    0.00 0.00 0.00 0.00 4/8 CSV#raw_encoding 2327
    0.00 0.00 0.00 0.00 4/8 Picky::Search#terminate_early 112
0.00% 0.00% 0.00 0.00 0.00 0.00 8 Kernel#respond_to?
    0.00 0.00 0.00 0.00 4/8 Kernel#respond_to_missing?
    0.00 0.00 0.00 0.00 4/4 CSV#initialize 1570
0.00% 0.00% 0.00 0.00 0.00 0.00 4 CSV#raw_encoding 2326
    0.00 0.00 0.00 0.00 4/4 IO#external_encoding 2328
    0.00 0.00 0.00 0.00 4/4 IO#internal_encoding 2328
    0.00 0.00 0.00 0.00 4/8 Kernel#respond_to? 2327
    0.00 0.00 0.00 0.00 4/4 Class#new
0.00% 0.00% 0.00 0.00 0.00 0.00 4 CSV#initialize 1563
    0.00 0.00 0.00 0.00 4/4 Hash#empty? 1598
    0.00 0.00 0.00 0.00 12/60 Hash#delete 1597
    0.00 0.00 0.00 0.00 4/4 CSV#init_headers 1593
    0.00 0.00 0.00 0.00 4/8 CSV#init_converters 1592
    0.00 0.00 0.00 0.00 4/4 CSV#init_parsers 1591
    0.00 0.00 0.00 0.00 4/4 CSV#init_separators 1590
    0.00 0.00 0.00 0.00 8/96 String#encode 1587
    0.00 0.00 0.00 0.00 4/4 CSV#raw_encoding 1570
    0.00 0.00 0.00 0.00 4/8 Kernel#is_a? 1568
    0.00 0.00 0.00 0.00 4/9 Hash#merge 1565
    0.00 0.00 0.00 0.00 4/4 <Class::IO>#open
0.00% 0.00% 0.00 0.00 0.00 0.00 4 File#initialize
    0.00 0.00 0.00 0.00 4/4 <Class::IO>#open
0.00% 0.00% 0.00 0.00 0.00 0.00 4 <Class::IO>#allocate
    0.00 0.00 0.00 0.00 4/4 <Class::CSV>#open 1342
0.00% 0.00% 0.00 0.00 0.00 0.00 4 <Class::IO>#open
    0.00 0.00 0.00 0.00 4/4 File#initialize
    0.00 0.00 0.00 0.00 4/4 <Class::IO>#allocate
    0.00 0.00 0.00 0.00 9/9 Kernel#initialize_dup
0.00% 0.00% 0.00 0.00 0.00 0.00 9 Hash#initialize_copy
    0.00 0.00 0.00 0.00 9/9 Hash#merge
0.00% 0.00% 0.00 0.00 0.00 0.00 9 Kernel#initialize_dup
    0.00 0.00 0.00 0.00 9/9 Hash#initialize_copy
    0.00 0.00 0.00 0.00 4/9 <Class::CSV>#open 1340
    0.00 0.00 0.00 0.00 4/9 CSV#initialize 1565
    0.00 0.00 0.00 0.00 1/9 Picky::Tokenizer#initialize 164
0.00% 0.00% 0.00 0.00 0.00 0.00 9 Hash#merge
    0.00 0.00 0.00 0.00 9/9 Kernel#initialize_dup
    0.00 0.00 0.00 0.00 9/13 <Class::Hash>#allocate
    0.00 0.00 0.00 0.00 4/4 Class#new
0.00% 0.00% 0.00 0.00 0.00 0.00 4 Hash#initialize
    0.00 0.00 0.00 0.00 4/13 Class#new
    0.00 0.00 0.00 0.00 9/13 Hash#merge
0.00% 0.00% 0.00 0.00 0.00 0.00 13 <Class::Hash>#allocate
    0.00 0.00 0.00 0.00 4/8 <Class::CSV>#open 1337
    0.00 0.00 0.00 0.00 4/8 CSV#initialize 1568
0.00% 0.00% 0.00 0.00 0.00 0.00 8 Kernel#is_a?
    0.00 0.00 0.00 0.00 2/2 Hash#each
0.00% 0.00% 0.00 0.00 0.00 0.00 2 Kernel#nil?
    0.00 0.00 0.00 0.00 4/4 Searches#prepare 15
0.00% 0.00% 0.00 0.00 0.00 0.00 4 <Class::CSV>#open 1335
    0.00 0.00 0.00 0.00 4/12 Kernel#block_given? 1352
    0.00 0.00 0.00 0.00 4/4 <Class::IO>#open 1342
    0.00 0.00 0.00 0.00 4/9 Hash#merge 1340
    0.00 0.00 0.00 0.00 8/629 Class#new 1349
    0.00 0.00 0.00 0.00 4/8 Kernel#is_a? 1337
    0.00 0.00 0.00 0.00 4/44 Array#last 1337
    0.00 0.00 0.00 0.00 4/4 Array#each
0.00% 0.00% 0.00 0.00 0.00 0.00 4 Searches#prepare 11
    0.00 0.00 0.00 0.00 4/4 CSV#each 15
    0.00 0.00 0.00 0.00 4/4 <Class::CSV>#open 15
    0.00 0.00 0.00 0.00 1/1 Hash#each
0.00% 0.00% 0.00 0.00 0.00 0.00 1 Picky::Tokenizer#splits_text_on 79
    0.00 0.00 0.00 0.00 1/1 Module#=== 80
    0.00 0.00 0.00 0.00 4/4 Class#new
0.00% 0.00% 0.00 0.00 0.00 0.00 4 Searches#initialize 3
    0.00 0.00 0.00 0.00 1/1 Picky::Tokenizer#splits_text_on 80
0.00% 0.00% 0.00 0.00 0.00 0.00 1 Module#===
    0.00 0.00 0.00 0.00 1/1 Hash#each
0.00% 0.00% 0.00 0.00 0.00 0.00 1 Picky::Tokenizer#rejects_token_if 123
    0.00 0.00 0.00 0.00 4/4 Global#[No method] 34
0.00% 0.00% 0.00 0.00 0.00 0.00 4 Proc#[]
    0.00 0.00 0.00 0.00 4/629 Class#new
    0.00 0.00 0.00 0.00 4/4 CSV#init_separators 2065
0.00% 0.00% 0.00 0.00 0.00 0.00 4 IO#rewind
* indicates recursively called methods