pg_search 2.3.0 → 2.3.5

Sign up to get free protection for your applications and to get access to all the features.
Files changed (40) hide show
  1. checksums.yaml +4 -4
  2. data/.codeclimate.yml +1 -0
  3. data/.github/dependabot.yml +11 -0
  4. data/.jrubyrc +1 -0
  5. data/.rubocop.yml +85 -7
  6. data/.travis.yml +14 -22
  7. data/CHANGELOG.md +41 -16
  8. data/CODE_OF_CONDUCT.md +76 -0
  9. data/Gemfile +1 -1
  10. data/LICENSE +1 -1
  11. data/README.md +60 -18
  12. data/lib/pg_search.rb +4 -6
  13. data/lib/pg_search/document.rb +1 -1
  14. data/lib/pg_search/features/dmetaphone.rb +4 -6
  15. data/lib/pg_search/features/tsearch.rb +13 -12
  16. data/lib/pg_search/migration/templates/add_pg_search_dmetaphone_support_functions.rb.erb +6 -6
  17. data/lib/pg_search/migration/templates/create_pg_search_documents.rb.erb +2 -2
  18. data/lib/pg_search/multisearch.rb +10 -1
  19. data/lib/pg_search/multisearch/rebuilder.rb +7 -3
  20. data/lib/pg_search/scope_options.rb +3 -3
  21. data/lib/pg_search/tasks.rb +2 -1
  22. data/lib/pg_search/version.rb +1 -1
  23. data/pg_search.gemspec +11 -7
  24. data/spec/.rubocop.yml +2 -2
  25. data/spec/integration/.rubocop.yml +11 -0
  26. data/spec/integration/associations_spec.rb +17 -56
  27. data/spec/integration/deprecation_spec.rb +1 -1
  28. data/spec/integration/pg_search_spec.rb +62 -51
  29. data/spec/lib/pg_search/configuration/association_spec.rb +8 -6
  30. data/spec/lib/pg_search/features/dmetaphone_spec.rb +2 -2
  31. data/spec/lib/pg_search/features/trigram_spec.rb +15 -11
  32. data/spec/lib/pg_search/features/tsearch_spec.rb +16 -10
  33. data/spec/lib/pg_search/multisearch/rebuilder_spec.rb +116 -71
  34. data/spec/lib/pg_search/multisearch_spec.rb +48 -29
  35. data/spec/lib/pg_search/multisearchable_spec.rb +150 -97
  36. data/spec/lib/pg_search/normalizer_spec.rb +12 -10
  37. data/spec/lib/pg_search_spec.rb +66 -55
  38. data/spec/spec_helper.rb +13 -4
  39. data/spec/support/database.rb +1 -1
  40. metadata +78 -17
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: c8e6c02c032d2a7a39ebe47e50584410cebe923e868dc6be720af23cd3748e55
4
- data.tar.gz: 24d70a673be8c9993c007b812af1d9af89cc565dfbbae9ed37c205d90ca893da
3
+ metadata.gz: c2c29f81bcee1e1547d17ae1eda7c5a71e1f43d4891cc1e66ec8e7f648473698
4
+ data.tar.gz: 68e7d896513f774004f9259fcc2aa88cb6fc687783be02bd9abbb21466e6c989
5
5
  SHA512:
6
- metadata.gz: 06e43bdc63bd98ea57943068cde6723780000ca3765a016d9baecdac3eea7006a1deae35885654b88b4752e3ad6f136190ac8602ffad62b3aac356425fad66d0
7
- data.tar.gz: 500d85f688710b48bf235eb1765c66e569dd7db98d95f03eaa81242f12c746d2ce8a57176185700c8d1b6ca903039d2c9b42fd5b71c84a8e4f8c46d7ef3464f7
6
+ metadata.gz: b1a224c8783e84a25aea02720ab06cb191c9a175c2416a9a1584e4a088845bc9b4d5e6a80eb73d06b7f4cabd933c770f386131b9cd52988626f200954770fa5b
7
+ data.tar.gz: 0744e0552c490b4e334334a23044d19aeae2cea28106fe09528add0a91c80bd9c7f507acb7a3c017df5d375cbf1a7bf590f6cb405ba066b8e4cc13b99f19904d
@@ -9,6 +9,7 @@ engines:
9
9
  enabled: true
10
10
  rubocop:
11
11
  enabled: true
12
+ channel: rubocop-0-78
12
13
  ratings:
13
14
  paths:
14
15
  - "**.rb"
@@ -0,0 +1,11 @@
1
+ # To get started with Dependabot version updates, you'll need to specify which
2
+ # package ecosystems to update and where the package manifests are located.
3
+ # Please see the documentation for all configuration options:
4
+ # https://help.github.com/github/administering-a-repository/configuration-options-for-dependency-updates
5
+
6
+ version: 2
7
+ updates:
8
+ - package-ecosystem: "bundler" # See documentation for possible values
9
+ directory: "/" # Location of package manifests
10
+ schedule:
11
+ interval: "daily"
@@ -0,0 +1 @@
1
+ debug.fullTrace=true
@@ -1,7 +1,12 @@
1
- require: rubocop-performance
1
+ require:
2
+ - rubocop-performance
3
+ - rubocop-rails
4
+ - rubocop-rake
5
+ - rubocop-rspec
2
6
 
3
7
  AllCops:
4
- TargetRubyVersion: 2.4
8
+ TargetRubyVersion: 2.5
9
+ NewCops: enable
5
10
  Exclude:
6
11
  - bin/**/*
7
12
  - vendor/**/*
@@ -9,17 +14,17 @@ AllCops:
9
14
  Style/StringLiterals:
10
15
  Enabled: false
11
16
 
12
- Metrics/LineLength:
17
+ Layout/LineLength:
13
18
  Max: 120
14
19
 
15
20
  Metrics/MethodLength:
16
- Max: 21
21
+ Max: 15
17
22
 
18
23
  Metrics/BlockLength:
19
24
  Exclude:
20
25
  - spec/**/*
21
26
 
22
- Layout/AlignParameters:
27
+ Layout/ParameterAlignment:
23
28
  EnforcedStyle: with_fixed_indentation
24
29
 
25
30
  Style/NumericPredicate:
@@ -44,8 +49,8 @@ Bundler/DuplicatedGem:
44
49
 
45
50
  Style/EmptyMethod:
46
51
  EnforcedStyle: expanded
47
-
48
- Layout/IndentFirstArrayElement:
52
+
53
+ Layout/FirstArrayElementIndentation:
49
54
  EnforcedStyle: consistent
50
55
 
51
56
  Style/Documentation:
@@ -54,3 +59,76 @@ Style/Documentation:
54
59
  Style/WordArray:
55
60
  EnforcedStyle: percent
56
61
  MinSize: 3
62
+
63
+ Style/HashEachMethods:
64
+ Enabled: true
65
+
66
+ Style/HashTransformKeys:
67
+ Enabled: true
68
+
69
+ Style/HashTransformValues:
70
+ Enabled: true
71
+
72
+ Rails/ApplicationRecord:
73
+ Enabled: false
74
+
75
+ Rails/TimeZone:
76
+ Enabled: false
77
+
78
+ RSpec/ContextWording:
79
+ Prefixes:
80
+ - using
81
+ - via
82
+ - when
83
+ - with
84
+ - without
85
+
86
+ Lint/RaiseException:
87
+ Enabled: true
88
+
89
+ Lint/StructNewOverride:
90
+ Enabled: true
91
+
92
+ Layout/SpaceAroundMethodCallOperator:
93
+ Enabled: true
94
+
95
+ Style/ExponentialNotation:
96
+ Enabled: true
97
+
98
+ RSpec/DescribedClass:
99
+ Enabled: true
100
+
101
+ RSpec/ExpectInHook:
102
+ Enabled: false
103
+
104
+ RSpec/FilePath:
105
+ CustomTransform:
106
+ TSearch: "tsearch"
107
+ DMetaphone: "dmetaphone"
108
+
109
+ Layout/EmptyLinesAroundAttributeAccessor:
110
+ Enabled: true
111
+
112
+ Lint/DeprecatedOpenSSLConstant:
113
+ Enabled: true
114
+
115
+ Style/SlicingWithRange:
116
+ Enabled: true
117
+
118
+ Lint/MixedRegexpCaptureTypes:
119
+ Enabled: true
120
+
121
+ Style/RedundantFetchBlock:
122
+ Enabled: true
123
+
124
+ Style/RedundantRegexpCharacterClass:
125
+ Enabled: true
126
+
127
+ Style/RedundantRegexpEscape:
128
+ Enabled: true
129
+
130
+ RSpec/MultipleExpectations:
131
+ Max: 5
132
+
133
+ RSpec/ExampleLength:
134
+ Max: 15
@@ -1,38 +1,33 @@
1
1
  language: ruby
2
- sudo: false
3
2
  bundler_args: --binstubs
4
3
  cache: bundler
5
4
 
6
5
  rvm:
7
- - 2.6.3
8
- - 2.5.5
9
- - 2.4.6
10
- - jruby-9.2.6.0
6
+ - 2.7.2
7
+ - 2.6.6
8
+ - 2.5.8
9
+ - jruby-9.2.13.0
10
+
11
+ services:
12
+ - postgresql
11
13
 
12
14
  env:
13
15
  global:
14
16
  - CC_TEST_REPORTER_ID=0a0e3e45118bc447e677d52c21d056a5471c4921d54f96ed7b2550d9fc5043ea
15
17
  matrix:
16
18
  - ACTIVE_RECORD_BRANCH="master"
17
- - ACTIVE_RECORD_BRANCH="5-2-stable"
18
- - ACTIVE_RECORD_VERSION="~> 6.0.0.beta1"
19
+ - ACTIVE_RECORD_BRANCH="6-1-stable"
20
+ - ACTIVE_RECORD_BRANCH="6-0-stable"
21
+ - ACTIVE_RECORD_VERSION="~> 6.1.0.rc1"
22
+ - ACTIVE_RECORD_VERSION="~> 6.0.0"
19
23
  - ACTIVE_RECORD_VERSION="~> 5.2.0"
20
- - ACTIVE_RECORD_VERSION="~> 5.1.0"
21
- - ACTIVE_RECORD_VERSION="~> 5.0.0"
22
- - ACTIVE_RECORD_VERSION="~> 4.2.9"
23
24
 
24
25
  matrix:
25
26
  allow_failures:
26
27
  - env: ACTIVE_RECORD_BRANCH="master"
27
- - env: ACTIVE_RECORD_BRANCH="5-2-stable"
28
- - env: ACTIVE_RECORD_VERSION="~> 6.0.0.beta1"
29
- exclude:
30
- - rvm: 2.4.6
31
- env: ACTIVE_RECORD_BRANCH="master"
32
- - rvm: jruby-9.2.6.0
33
- env: ACTIVE_RECORD_VERSION="~> 4.2.9"
34
- - rvm: 2.4.5
35
- env: ACTIVE_RECORD_VERSION="~> 6.0.0.beta1"
28
+ - env: ACTIVE_RECORD_BRANCH="6-0-stable"
29
+ - env: ACTIVE_RECORD_BRANCH="6-1-stable"
30
+ - env: ACTIVE_RECORD_VERSION="~> 6.1.0.rc1"
36
31
 
37
32
  before_script:
38
33
  - psql --version
@@ -45,6 +40,3 @@ script: bin/rake
45
40
 
46
41
  after_script:
47
42
  - ./cc-test-reporter after-build --exit-code $TRAVIS_TEST_RESULT
48
-
49
- addons:
50
- postgresql: "9.6"
@@ -1,52 +1,77 @@
1
1
  # pg_search changelog
2
2
 
3
+ ## 2.3.5
4
+
5
+ * Add table of contents to README (Barry Woolgar)
6
+ * Add support for Active Record 6.1
7
+
8
+ ## 2.3.4
9
+
10
+ * Fix issue when setting various options directly on the `PgSearch` module while
11
+ running with a threaded web server, such as Puma. (Anton Rieder)
12
+
13
+ ## 2.3.3
14
+
15
+ * Drop support for Ruby < 2.5.
16
+ * Use keyword argument for `clean_up` setting in `PgSearch::Multisearch.rebuild`.
17
+
18
+ ## 2.3.2
19
+
20
+ * Autoload `PgSearch::Document` to prevent it from being loaded in projects that are not using multi-search.
21
+ * Rebuilder should use `update_pg_search_document` if `additional_attributes` is set. (David Ramalho)
22
+
23
+ ## 2.3.1
24
+
25
+ * Drop support for Active Record < 5.2.
26
+ * Do not load railtie unless Rails::Railtie is defined, to avoid problem when loading alongside Action Mailer. (Adam Schwartz)
27
+
3
28
  ## 2.3.0
4
29
 
5
- * Extract `PgSearch::Model` module
30
+ * Extract `PgSearch::Model` module.
6
31
  * Deprecate `include PgSearch`. Use `include PgSearch::Model` instead.
7
32
 
8
33
  ## 2.2.0
9
34
 
10
- * Add word_similarity option to trigram search (Severin Räz)
35
+ * Add `word_similarity` option to trigram search. (Severin Räz)
11
36
 
12
37
  ## 2.1.7
13
38
 
14
- * Restore link to GitHub repository to original location
39
+ * Restore link to GitHub repository to original location.
15
40
 
16
41
  ## 2.1.6
17
42
 
18
- * Update link to GitHub repository to new location
43
+ * Update link to GitHub repository to new location.
19
44
 
20
45
  ## 2.1.5
21
46
 
22
- * Drop support for Ruby < 2.4
47
+ * Drop support for Ruby < 2.4.
23
48
 
24
49
  ## 2.1.4
25
50
 
26
- * Drop support for Ruby < 2.3
27
- * Use update instead of deprecated update_attributes
28
- * Remove explicit arel dependency to better support Active Record 6 beta
51
+ * Drop support for Ruby < 2.3.
52
+ * Use `update` instead of deprecated `update_attributes`.
53
+ * Remove explicit Arel dependency to better support Active Record 6 beta.
29
54
 
30
55
  ## 2.1.3
31
56
 
32
57
  * Drop support for Ruby < 2.2
33
- * Disallow left/right single quotation marks in tsquery (Fabian Schwahn) (#382)
34
- * Do not attempt to save an already-destroy PgSearch::Document (Oleg Dashevskii, Vokhmin Aleksei V) (#353)
35
- * Quote column name when rebuilding (Jed Levin) (#379)
58
+ * Disallow left/right single quotation marks in tsquery. (Fabian Schwahn) (#382)
59
+ * Do not attempt to save an already-destroyed `PgSearch::Document`. (Oleg Dashevskii, Vokhmin Aleksei V) (#353)
60
+ * Quote column name when rebuilding. (Jed Levin) (#379)
36
61
 
37
62
  ## 2.1.2
38
63
 
39
- * Silence warnings in Rails 5.2.0.beta2 (Kevin Deisz)
64
+ * Silence warnings in Rails 5.2.0.beta2. (Kevin Deisz)
40
65
 
41
66
  ## 2.1.1
42
67
 
43
- * Support snake_case ts_headline options again (with deprecation warning)
68
+ * Support snake_case `ts_headline` options again. (with deprecation warning)
44
69
 
45
70
  ## 2.1.0
46
71
 
47
- * Allow ts_headline options to be passed to :highlight (Ian Heisters)
48
- * Wait to load PgSearch::Document until after Active Record has loaded (Logan Leger)
49
- * Add Rails version to generated migrations (Erik Eide)
72
+ * Allow `ts_headline` options to be passed to `:highlight`. (Ian Heisters)
73
+ * Wait to load `PgSearch::Document` until after Active Record has loaded. (Logan Leger)
74
+ * Add Rails version to generated migrations. (Erik Eide)
50
75
 
51
76
  ## 2.0.1
52
77
 
@@ -0,0 +1,76 @@
1
+ # Contributor Covenant Code of Conduct
2
+
3
+ ## Our Pledge
4
+
5
+ In the interest of fostering an open and welcoming environment, we as
6
+ contributors and maintainers pledge to making participation in our project and
7
+ our community a harassment-free experience for everyone, regardless of age, body
8
+ size, disability, ethnicity, sex characteristics, gender identity and expression,
9
+ level of experience, education, socio-economic status, nationality, personal
10
+ appearance, race, religion, or sexual identity and orientation.
11
+
12
+ ## Our Standards
13
+
14
+ Examples of behavior that contributes to creating a positive environment
15
+ include:
16
+
17
+ * Using welcoming and inclusive language
18
+ * Being respectful of differing viewpoints and experiences
19
+ * Gracefully accepting constructive criticism
20
+ * Focusing on what is best for the community
21
+ * Showing empathy towards other community members
22
+
23
+ Examples of unacceptable behavior by participants include:
24
+
25
+ * The use of sexualized language or imagery and unwelcome sexual attention or
26
+ advances
27
+ * Trolling, insulting/derogatory comments, and personal or political attacks
28
+ * Public or private harassment
29
+ * Publishing others' private information, such as a physical or electronic
30
+ address, without explicit permission
31
+ * Other conduct which could reasonably be considered inappropriate in a
32
+ professional setting
33
+
34
+ ## Our Responsibilities
35
+
36
+ Project maintainers are responsible for clarifying the standards of acceptable
37
+ behavior and are expected to take appropriate and fair corrective action in
38
+ response to any instances of unacceptable behavior.
39
+
40
+ Project maintainers have the right and responsibility to remove, edit, or
41
+ reject comments, commits, code, wiki edits, issues, and other contributions
42
+ that are not aligned to this Code of Conduct, or to ban temporarily or
43
+ permanently any contributor for other behaviors that they deem inappropriate,
44
+ threatening, offensive, or harmful.
45
+
46
+ ## Scope
47
+
48
+ This Code of Conduct applies both within project spaces and in public spaces
49
+ when an individual is representing the project or its community. Examples of
50
+ representing a project or community include using an official project e-mail
51
+ address, posting via an official social media account, or acting as an appointed
52
+ representative at an online or offline event. Representation of a project may be
53
+ further defined and clarified by project maintainers.
54
+
55
+ ## Enforcement
56
+
57
+ Instances of abusive, harassing, or otherwise unacceptable behavior may be
58
+ reported by contacting the project team at pg_search@nertzy.com. All
59
+ complaints will be reviewed and investigated and will result in a response that
60
+ is deemed necessary and appropriate to the circumstances. The project team is
61
+ obligated to maintain confidentiality with regard to the reporter of an incident.
62
+ Further details of specific enforcement policies may be posted separately.
63
+
64
+ Project maintainers who do not follow or enforce the Code of Conduct in good
65
+ faith may face temporary or permanent repercussions as determined by other
66
+ members of the project's leadership.
67
+
68
+ ## Attribution
69
+
70
+ This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4,
71
+ available at https://www.contributor-covenant.org/version/1/4/code-of-conduct.html
72
+
73
+ [homepage]: https://www.contributor-covenant.org
74
+
75
+ For answers to common questions about this code of conduct, see
76
+ https://www.contributor-covenant.org/faq
data/Gemfile CHANGED
@@ -4,7 +4,7 @@ source 'https://rubygems.org'
4
4
 
5
5
  gemspec
6
6
 
7
- gem 'pg', '>= 0.21.0', '< 1.0.0', platform: :ruby
7
+ gem 'pg', '>= 0.21.0', platform: :ruby
8
8
  gem "activerecord-jdbcpostgresql-adapter", ">= 1.3.1", platform: :jruby
9
9
 
10
10
  if ENV['ACTIVE_RECORD_BRANCH']
data/LICENSE CHANGED
@@ -1,4 +1,4 @@
1
- Copyright (c) 2010-2019 Casebook, PBC <http://www.casebook.net>
1
+ Copyright (c) 2010-2020 Casebook, PBC <http://www.casebook.net>
2
2
 
3
3
  Permission is hereby granted, free of charge, to any person obtaining a copy
4
4
  of this software and associated documentation files (the "Software"), to deal
data/README.md CHANGED
@@ -16,8 +16,8 @@ Read the blog post introducing PgSearch at https://content.pivotal.io/blog/pg-se
16
16
 
17
17
  ## REQUIREMENTS
18
18
 
19
- * Ruby 2.4+
20
- * ActiveRecord 4.2+
19
+ * Ruby 2.5+
20
+ * ActiveRecord 5.2+
21
21
  * PostgreSQL 9.2+
22
22
  * [PostgreSQL extensions](https://github.com/Casecommons/pg_search/wiki/Installing-PostgreSQL-Extensions) for certain features
23
23
 
@@ -53,6 +53,47 @@ class Shape < ActiveRecord::Base
53
53
  end
54
54
  ```
55
55
 
56
+ ### Contents
57
+ * [Multi-search vs. search scopes](#multi-search-vs-search-scopes)
58
+ * [Multi-search](#multi-search)
59
+ * [Setup](#setup)
60
+ * [`multisearchable`](#multisearchable)
61
+ * [More Options ](#more-options)
62
+ * [Multi-search associations](#multi-search-associations)
63
+ * [Searching in the global search index](#searching-in-the-global-search-index)
64
+ * [Chaining method calls onto the results](#chaining-method-calls-onto-the-results)
65
+ * [Configuring multi-search](#configuring-multi-search)
66
+ * [Rebuilding search documents for a given class](#rebuilding-search-documents-for-a-given-class)
67
+ * [Disabling multi-search indexing temporarily](#disabling-multi-search-indexing-temporarily)
68
+ * [`pg_search_scope`](#pg_search_scope)
69
+ * [Searching against one column](#searching-against-one-column)
70
+ * [Searching against multiple columns](#searching-against-multiple-columns)
71
+ * [Dynamic search scopes](#dynamic-search-scopes)
72
+ * [Searching through associations](#searching-through-associations)
73
+ * [Searching using different search features](#searching-using-different-search-features)
74
+ * [`:tsearch` (Full Text Search)](#tsearch-full-text-search)
75
+ * [Weighting](#weighting)
76
+ * [`:prefix` (PostgreSQL 8.4 and newer only)](#prefix-postgresql-84-and-newer-only)
77
+ * [`:negation`](#negation)
78
+ * [`:dictionary`](#dictionary)
79
+ * [`:normalization`](#normalization)
80
+ * [`:any_word`](#any_word)
81
+ * [`:sort_only`](#sort_only)
82
+ * [`:highlight`](#highlight)
83
+ * [`:dmetaphone` (Double Metaphone soundalike search)](#dmetaphone-double-metaphone-soundalike-search)
84
+ * [`:trigram` (Trigram search)](#trigram-trigram-search)
85
+ * [`:threshold`](#threshold)
86
+ * [`:word_similarity`](#word_similarity)
87
+ * [Limiting Fields When Combining Features](#limiting-fields-when-combining-features)
88
+ * [Ignoring accent marks](#ignoring-accent-marks)
89
+ * [Using tsvector columns](#using-tsvector-columns)
90
+ * [Combining multiple tsvectors](#combining-multiple-tsvectors)
91
+ * [Configuring ranking and ordering](#configuring-ranking-and-ordering)
92
+ * [`:ranked_by` (Choosing a ranking algorithm)](#ranked_by-choosing-a-ranking-algorithm)
93
+ * [`:order_within_rank` (Breaking ties)](#order_within_rank-breaking-ties)
94
+ * [`PgSearch#pg_search_rank` (Reading a record's rank as a Float)](#pgsearchpg_search_rank-reading-a-records-rank-as-a-float)
95
+ * [Search rank and chained scopes](#search-rank-and-chained-scopes)
96
+
56
97
  ### Multi-search vs. search scopes
57
98
 
58
99
  pg_search supports two different techniques for searching, multi-search and
@@ -175,15 +216,17 @@ multisearchable(
175
216
 
176
217
  **Specify additional attributes to be saved on the pg_search_documents table**
177
218
 
178
- You can specify `:additional_attributes` to be saved within the pg_search_documents table. For example, perhaps you are indexing a book model and an article model and wanted to include the author_id.
219
+ You can specify `:additional_attributes` to be saved within the `pg_search_documents` table. For example, perhaps you are indexing a book model and an article model and wanted to include the author_id.
179
220
 
180
- First, we need to add `author_id` to the migration creating our pg_search_documents table.
221
+ First, we need to add a reference to author to the migration creating our `pg_search_documents` table.
181
222
 
182
223
  ```ruby
183
224
  create_table :pg_search_documents do |t|
184
- t.text :content
185
- t.integer :author_id
186
- t.belongs_to :searchable, polymorphic: true, index: true
225
+ t.text :content
226
+ t.references :author, index: true
227
+ t.belongs_to :searchable, polymorphic: true, index: true
228
+ t.timestamps null: false
229
+ end
187
230
  ```
188
231
 
189
232
  Then, we can send in this additional attribute in a lambda
@@ -196,7 +239,10 @@ Then, we can send in this additional attribute in a lambda
196
239
  ```
197
240
 
198
241
  This allows much faster searches without joins later on by doing something like:
199
- `PgSearch.multisearch(params['search']).where(author_id: 2)`
242
+
243
+ ```ruby
244
+ PgSearch.multisearch(params['search']).where(author_id: 2)
245
+ ```
200
246
 
201
247
  *NOTE: You must currently manually call `record.update_pg_search_document` for the additional attribute to be included in the pg_search_documents table*
202
248
 
@@ -289,7 +335,7 @@ is your base class. You can prevent ```rebuild``` from deleting your records
289
335
  like so:
290
336
 
291
337
  ```ruby
292
- PgSearch::Multisearch.rebuild(Product, false)
338
+ PgSearch::Multisearch.rebuild(Product, clean_up: false)
293
339
  ```
294
340
 
295
341
  Rebuild is also available as a Rake task, for convenience.
@@ -333,7 +379,7 @@ class Movie < ActiveRecord::Base
333
379
 
334
380
  # More sophisticated approach
335
381
  def self.rebuild_pg_search_documents
336
- connection.execute <<-SQL
382
+ connection.execute <<~SQL.squish
337
383
  INSERT INTO pg_search_documents (searchable_type, searchable_id, content, created_at, updated_at)
338
384
  SELECT 'Movie' AS searchable_type,
339
385
  movies.id AS searchable_id,
@@ -718,7 +764,7 @@ class Person < ActiveRecord::Base
718
764
  pg_search_scope :search,
719
765
  against: :name,
720
766
  using: {
721
- tsearch: {any_word: true}
767
+ tsearch: {any_word: true},
722
768
  dmetaphone: {any_word: true, sort_only: true}
723
769
  }
724
770
  end
@@ -890,7 +936,7 @@ class Sentence < ActiveRecord::Base
890
936
  include PgSearch::Model
891
937
 
892
938
  pg_search_scope :similarity_like,
893
- against: :words,
939
+ against: :name,
894
940
  using: {
895
941
  trigram: {
896
942
  word_similarity: true
@@ -898,7 +944,7 @@ class Sentence < ActiveRecord::Base
898
944
  }
899
945
 
900
946
  pg_search_scope :word_similarity_like,
901
- against: :words,
947
+ against: :name,
902
948
  using: [:trigram]
903
949
  end
904
950
 
@@ -1143,15 +1189,11 @@ Patterson](http://tenderlovemaking.com/) for the original version and to Caseboo
1143
1189
 
1144
1190
  ## CONTRIBUTIONS AND FEEDBACK
1145
1191
 
1146
- Welcomed! Feel free to join and contribute to our [public Pivotal Tracker
1147
- project](https://www.pivotaltracker.com/projects/228645) where we manage new
1148
- feature ideas and bugs.
1192
+ Please read our [CONTRIBUTING guide](https://github.com/Casecommons/pg_search/blob/master/CONTRIBUTING.md).
1149
1193
 
1150
1194
  We also have a [Google Group](http://groups.google.com/group/casecommons-dev)
1151
1195
  for discussing pg_search and other Casebook PBC open source projects.
1152
1196
 
1153
- Please read our [CONTRIBUTING guide](https://github.com/Casecommons/pg_search/blob/master/CONTRIBUTING.md).
1154
-
1155
1197
  ## LICENSE
1156
1198
 
1157
1199
  Copyright © 2010–2019 [Casebook PBC](http://www.casebook.net).