mongoid_fulltext 0.4.2 → 0.4.3
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/VERSION +1 -1
- data/lib/mongoid_fulltext.rb +4 -4
- data/mongoid_fulltext.gemspec +2 -2
- data/spec/models/partitioned_artist.rb +1 -1
- metadata +9 -9
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.4.
|
1
|
+
0.4.3
|
data/lib/mongoid_fulltext.rb
CHANGED
@@ -108,7 +108,7 @@ module Mongoid::FullTextSearch
|
|
108
108
|
query.update(Hash[options.map { |key,value| [ 'filter_values.%s' % key, { '$all' => [ value ].flatten } ] }])
|
109
109
|
count = coll.find(query).count
|
110
110
|
{:ngram => ngram, :count => count, :query => query}
|
111
|
-
end.
|
111
|
+
end.sort!{ |record1, record2| record1[:count] <=> record2[:count] }
|
112
112
|
|
113
113
|
# Using the queries we just constructed and the n-gram frequency counts we
|
114
114
|
# just computed, pull in about *:max_candidate_set_size* candidates by
|
@@ -128,7 +128,7 @@ module Mongoid::FullTextSearch
|
|
128
128
|
ngram_score = ngrams[doc[:ngram][0]]
|
129
129
|
Hash[coll.find(doc[:query], query_options).map do |candidate|
|
130
130
|
[candidate['document_id'],
|
131
|
-
{clazz
|
131
|
+
{:clazz => candidate['class'], :score => candidate['score'] * ngram_score}]
|
132
132
|
end]
|
133
133
|
end.compact
|
134
134
|
|
@@ -144,12 +144,12 @@ module Mongoid::FullTextSearch
|
|
144
144
|
scores = candidates.map do |candidate_id, data|
|
145
145
|
{:id => candidate_id,
|
146
146
|
:clazz => data[:clazz],
|
147
|
-
:score => data[:score] + candidates_list.map{ |others| (others.delete(candidate_id) || {score
|
147
|
+
:score => data[:score] + candidates_list.map{ |others| (others.delete(candidate_id) || {:score => 0})[:score] }.sum
|
148
148
|
}
|
149
149
|
end
|
150
150
|
all_scores.concat(scores)
|
151
151
|
end
|
152
|
-
all_scores.
|
152
|
+
all_scores.sort!{ |document1, document2| -document1[:score] <=> -document2[:score] }
|
153
153
|
|
154
154
|
instantiate_mapreduce_results(all_scores[0..max_results-1], { :return_scores => return_scores })
|
155
155
|
end
|
data/mongoid_fulltext.gemspec
CHANGED
@@ -5,11 +5,11 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = %q{mongoid_fulltext}
|
8
|
-
s.version = "0.4.
|
8
|
+
s.version = "0.4.3"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["Aaron Windsor"]
|
12
|
-
s.date = %q{2011-
|
12
|
+
s.date = %q{2011-08-03}
|
13
13
|
s.description = %q{Full-text search for the Mongoid ORM, using n-grams extracted from text}
|
14
14
|
s.email = %q{aaron.windsor@gmail.com}
|
15
15
|
s.extra_rdoc_files = [
|
@@ -3,7 +3,7 @@ class PartitionedArtist
|
|
3
3
|
include Mongoid::FullTextSearch
|
4
4
|
|
5
5
|
field :full_name
|
6
|
-
field :exhibitions, type
|
6
|
+
field :exhibitions, :type => Array, :default => []
|
7
7
|
|
8
8
|
fulltext_search_in :full_name,
|
9
9
|
:index_name => 'mongoid_fulltext.partitioned_artists',
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: mongoid_fulltext
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.4.
|
4
|
+
version: 0.4.3
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,12 +9,12 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2011-
|
12
|
+
date: 2011-08-03 00:00:00.000000000 -04:00
|
13
13
|
default_executable:
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: mongoid
|
17
|
-
requirement: &
|
17
|
+
requirement: &82382470 !ruby/object:Gem::Requirement
|
18
18
|
none: false
|
19
19
|
requirements:
|
20
20
|
- - ~>
|
@@ -22,10 +22,10 @@ dependencies:
|
|
22
22
|
version: 2.0.0
|
23
23
|
type: :development
|
24
24
|
prerelease: false
|
25
|
-
version_requirements: *
|
25
|
+
version_requirements: *82382470
|
26
26
|
- !ruby/object:Gem::Dependency
|
27
27
|
name: rspec
|
28
|
-
requirement: &
|
28
|
+
requirement: &82381540 !ruby/object:Gem::Requirement
|
29
29
|
none: false
|
30
30
|
requirements:
|
31
31
|
- - ~>
|
@@ -33,10 +33,10 @@ dependencies:
|
|
33
33
|
version: 2.5.0
|
34
34
|
type: :development
|
35
35
|
prerelease: false
|
36
|
-
version_requirements: *
|
36
|
+
version_requirements: *82381540
|
37
37
|
- !ruby/object:Gem::Dependency
|
38
38
|
name: jeweler
|
39
|
-
requirement: &
|
39
|
+
requirement: &82380580 !ruby/object:Gem::Requirement
|
40
40
|
none: false
|
41
41
|
requirements:
|
42
42
|
- - ~>
|
@@ -44,7 +44,7 @@ dependencies:
|
|
44
44
|
version: 1.5.2
|
45
45
|
type: :development
|
46
46
|
prerelease: false
|
47
|
-
version_requirements: *
|
47
|
+
version_requirements: *82380580
|
48
48
|
description: Full-text search for the Mongoid ORM, using n-grams extracted from text
|
49
49
|
email: aaron.windsor@gmail.com
|
50
50
|
executables: []
|
@@ -94,7 +94,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
94
94
|
version: '0'
|
95
95
|
segments:
|
96
96
|
- 0
|
97
|
-
hash:
|
97
|
+
hash: 867015793
|
98
98
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
99
99
|
none: false
|
100
100
|
requirements:
|