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 +8 -2
- data/lib/picky/search_facets.rb +2 -2
- data/spec/functional/facets_spec.rb +1 -1
- metadata +17 -17
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
|
230
|
+
tokens.partialize_last if partialize_last
|
225
231
|
tokens
|
226
232
|
end
|
227
233
|
|
data/lib/picky/search_facets.rb
CHANGED
@@ -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.
|
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.
|
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-
|
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: &
|
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: *
|
24
|
+
version_requirements: *70359044149180
|
25
25
|
- !ruby/object:Gem::Dependency
|
26
26
|
name: picky-client
|
27
|
-
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.
|
32
|
+
version: 4.5.11
|
33
33
|
type: :development
|
34
34
|
prerelease: false
|
35
|
-
version_requirements: *
|
35
|
+
version_requirements: *70359044148680
|
36
36
|
- !ruby/object:Gem::Dependency
|
37
37
|
name: text
|
38
|
-
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: *
|
46
|
+
version_requirements: *70359044148260
|
47
47
|
- !ruby/object:Gem::Dependency
|
48
48
|
name: multi_json
|
49
|
-
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: *
|
57
|
+
version_requirements: *70359044147800
|
58
58
|
- !ruby/object:Gem::Dependency
|
59
59
|
name: activesupport
|
60
|
-
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: *
|
68
|
+
version_requirements: *70359044147300
|
69
69
|
- !ruby/object:Gem::Dependency
|
70
70
|
name: procrastinate
|
71
|
-
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: *
|
79
|
+
version_requirements: *70359044146800
|
80
80
|
- !ruby/object:Gem::Dependency
|
81
81
|
name: rack_fast_escape
|
82
|
-
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: *
|
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:
|