picky 4.5.10 → 4.5.11

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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: