picky 4.5.10 → 4.5.11

Sign up to get free protection for your applications and to get access to all the features.
data/lib/picky/search.rb CHANGED
@@ -175,6 +175,9 @@ module Picky
175
175
  # * ids = 20: The amount of ids to calculate (with offset).
176
176
  # * offset = 0: The offset from which position to return the ids. Useful for pagination.
177
177
  #
178
+ # Options:
179
+ # * unique: Whether to return unique ids.
180
+ #
178
181
  # Note: The Rack adapter calls this method after unravelling the HTTP request.
179
182
  #
180
183
  def search text, ids = 20, offset = 0, options = {}
@@ -213,15 +216,18 @@ module Picky
213
216
  #
214
217
  # Parameters:
215
218
  # * text: The string to tokenize.
219
+ # * partialize_last: Whether to partialize the last token
220
+ #
221
+ # Note: By default, the last token is always partial.
216
222
  #
217
223
  # Returns:
218
224
  # * A Picky::Query::Tokens instance.
219
225
  #
220
- def tokenized text
226
+ def tokenized text, partialize_last = true
221
227
  tokens, originals = tokenizer.tokenize text
222
228
  tokens = Query::Tokens.processed tokens, originals || tokens, @ignore_unassigned
223
229
  # tokens.symbolize # TODO Symbols.
224
- tokens.partialize_last # Note: In the standard Picky search, the last token is always partial.
230
+ tokens.partialize_last if partialize_last
225
231
  tokens
226
232
  end
227
233
 
@@ -28,12 +28,12 @@ module Picky
28
28
 
29
29
  # Pre-tokenize filter for reuse.
30
30
  #
31
- tokenized_filter = tokenized filter_query
31
+ tokenized_filter = tokenized filter_query, false
32
32
 
33
33
  # Filter out impossible facets.
34
34
  #
35
35
  weights.select do |key, weight|
36
- tokenized_query = tokenized "#{category_identifier}:#{key}"
36
+ tokenized_query = tokenized "#{category_identifier}:#{key}", false
37
37
  search_with(tokenized_filter + tokenized_query, 0, 0).total > 0
38
38
  end
39
39
  end
@@ -119,7 +119,7 @@ describe 'facets' do
119
119
  it 'is fast enough' do
120
120
  performance_of {
121
121
  10.times { finder.facets(:age_category, filter: 'surname:meier name:peter') }
122
- }.should < 0.0025
122
+ }.should < 0.00275
123
123
  end
124
124
  it 'filters them correctly' do
125
125
  # It has one facet.
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: picky
3
3
  version: !ruby/object:Gem::Version
4
- version: 4.5.10
4
+ version: 4.5.11
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,11 +9,11 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-07-23 00:00:00.000000000 Z
12
+ date: 2012-07-24 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rspec
16
- requirement: &70099253389300 !ruby/object:Gem::Requirement
16
+ requirement: &70359044149180 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ! '>='
@@ -21,21 +21,21 @@ dependencies:
21
21
  version: '0'
22
22
  type: :development
23
23
  prerelease: false
24
- version_requirements: *70099253389300
24
+ version_requirements: *70359044149180
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: picky-client
27
- requirement: &70099253388340 !ruby/object:Gem::Requirement
27
+ requirement: &70359044148680 !ruby/object:Gem::Requirement
28
28
  none: false
29
29
  requirements:
30
30
  - - ~>
31
31
  - !ruby/object:Gem::Version
32
- version: 4.5.10
32
+ version: 4.5.11
33
33
  type: :development
34
34
  prerelease: false
35
- version_requirements: *70099253388340
35
+ version_requirements: *70359044148680
36
36
  - !ruby/object:Gem::Dependency
37
37
  name: text
38
- requirement: &70099253386400 !ruby/object:Gem::Requirement
38
+ requirement: &70359044148260 !ruby/object:Gem::Requirement
39
39
  none: false
40
40
  requirements:
41
41
  - - ! '>='
@@ -43,10 +43,10 @@ dependencies:
43
43
  version: '0'
44
44
  type: :runtime
45
45
  prerelease: false
46
- version_requirements: *70099253386400
46
+ version_requirements: *70359044148260
47
47
  - !ruby/object:Gem::Dependency
48
48
  name: multi_json
49
- requirement: &70099253385580 !ruby/object:Gem::Requirement
49
+ requirement: &70359044147800 !ruby/object:Gem::Requirement
50
50
  none: false
51
51
  requirements:
52
52
  - - ! '>='
@@ -54,10 +54,10 @@ dependencies:
54
54
  version: '0'
55
55
  type: :runtime
56
56
  prerelease: false
57
- version_requirements: *70099253385580
57
+ version_requirements: *70359044147800
58
58
  - !ruby/object:Gem::Dependency
59
59
  name: activesupport
60
- requirement: &70099253400520 !ruby/object:Gem::Requirement
60
+ requirement: &70359044147300 !ruby/object:Gem::Requirement
61
61
  none: false
62
62
  requirements:
63
63
  - - ~>
@@ -65,10 +65,10 @@ dependencies:
65
65
  version: '3.0'
66
66
  type: :runtime
67
67
  prerelease: false
68
- version_requirements: *70099253400520
68
+ version_requirements: *70359044147300
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: procrastinate
71
- requirement: &70099253398380 !ruby/object:Gem::Requirement
71
+ requirement: &70359044146800 !ruby/object:Gem::Requirement
72
72
  none: false
73
73
  requirements:
74
74
  - - ~>
@@ -76,10 +76,10 @@ dependencies:
76
76
  version: '0.4'
77
77
  type: :runtime
78
78
  prerelease: false
79
- version_requirements: *70099253398380
79
+ version_requirements: *70359044146800
80
80
  - !ruby/object:Gem::Dependency
81
81
  name: rack_fast_escape
82
- requirement: &70099253396680 !ruby/object:Gem::Requirement
82
+ requirement: &70359044146420 !ruby/object:Gem::Requirement
83
83
  none: false
84
84
  requirements:
85
85
  - - ! '>='
@@ -87,7 +87,7 @@ dependencies:
87
87
  version: '0'
88
88
  type: :runtime
89
89
  prerelease: false
90
- version_requirements: *70099253396680
90
+ version_requirements: *70359044146420
91
91
  description: Fast Ruby semantic text search engine with comfortable single field interface.
92
92
  email: florian.hanke+picky@gmail.com
93
93
  executables: