postgres-fulltext-search-helper 0.1.0 → 0.1.1
Sign up to get free protection for your applications and to get access to all the features.
@@ -7,7 +7,7 @@ module PostgresFulltextSearchHelper
|
|
7
7
|
|
8
8
|
def format_query_for_fulltext(query)
|
9
9
|
parts = query.split(POSTGRES_TSQUERY_SENSITIVE_CHARACTERS).delete_if{|x| x.strip.empty? }
|
10
|
-
return parts.map{|token| token
|
10
|
+
return parts.map{|token| "(#{token}:* | -#{token}:*)" }.join(' & ')
|
11
11
|
end
|
12
12
|
|
13
13
|
def search(scope, field_name, query)
|
@@ -6,24 +6,24 @@ describe PostgresFulltextSearchHelper do
|
|
6
6
|
it "returns a string that can be used by postgres" do
|
7
7
|
query = "hello"
|
8
8
|
|
9
|
-
expect(Helper.format_query_for_fulltext(query)).to eq("hello:*")
|
9
|
+
expect(Helper.format_query_for_fulltext(query)).to eq("(hello:* | -hello:*)")
|
10
10
|
end
|
11
11
|
|
12
12
|
it "whitespace is interpreted as &" do
|
13
13
|
query = "hello world"
|
14
14
|
|
15
|
-
expect(Helper.format_query_for_fulltext(query)).to eq("hello:* & world:*")
|
15
|
+
expect(Helper.format_query_for_fulltext(query)).to eq("(hello:* | -hello:*) & (world:* | -world:*)")
|
16
16
|
end
|
17
17
|
|
18
18
|
it "handles sensitive characters" do
|
19
19
|
query = "*:hello &(world)!|"
|
20
|
-
expect(Helper.format_query_for_fulltext(query)).to eq("hello:* & world:*")
|
20
|
+
expect(Helper.format_query_for_fulltext(query)).to eq("(hello:* | -hello:*) & (world:* | -world:*)")
|
21
21
|
end
|
22
22
|
|
23
23
|
it "adds a filter to a activerecord-style scope" do
|
24
24
|
scope = stub("scope").as_null_object
|
25
25
|
|
26
|
-
scope.should_receive(:where).with("to_tsvector('simple', name::text) @@ to_tsquery('simple', ?)", ["hello:* & world:*"])
|
26
|
+
scope.should_receive(:where).with("to_tsvector('simple', name::text) @@ to_tsquery('simple', ?)", ["(hello:* | -hello:*) & (world:* | -world:*)"])
|
27
27
|
|
28
28
|
Helper.search(scope, "name", "hello world")
|
29
29
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: postgres-fulltext-search-helper
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.1
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -10,7 +10,7 @@ authors:
|
|
10
10
|
autorequire:
|
11
11
|
bindir: bin
|
12
12
|
cert_chain: []
|
13
|
-
date: 2013-
|
13
|
+
date: 2013-07-22 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: rspec
|