about summary refs log tree commit diff
path: root/config/initializers
diff options
context:
space:
mode:
authorEugen Rochko <eugen@zeonfederated.com>2018-02-09 23:04:47 +0100
committerGitHub <noreply@github.com>2018-02-09 23:04:47 +0100
commit3ebc0ad4d3c2fe0b0951a334642b769bd521a799 (patch)
tree9b88b2da41dbbc24cb922660937b5ee65366c38d /config/initializers
parent235c14c79d620d47012a08425324df222a136457 (diff)
Full-text search for authorized statuses (#6423)
* Add full-text search for authorized statuses

- Search API will return statuses that match the query
- Only for logged in users
- Only if you are author of the status,
- Or you were mentioned in it
- Or you favourited or reblogged it
- Configuration over `ES_ENABLED`, `ES_HOST`, `ES_PORT`, `ES_PREFIX`
- Run `rails chewy:deploy` to create & populate index

Fix #5880
Fix #4293
Fix #1152

* Add commented out docker-compose configuration for ES container

* Optimize index import, filter search results

* Add basic normalization to the index

* Add better stemming and normalization to the index

* Skip webfinger request if search query includes both @ and a space

* Fix code style

* Visually separate search result sections

* Fix code style issues
Diffstat (limited to 'config/initializers')
-rw-r--r--config/initializers/chewy.rb22
1 files changed, 22 insertions, 0 deletions
diff --git a/config/initializers/chewy.rb b/config/initializers/chewy.rb
new file mode 100644
index 000000000..bef2746ec
--- /dev/null
+++ b/config/initializers/chewy.rb
@@ -0,0 +1,22 @@
+enabled         = ENV['ES_ENABLED'] == 'true'
+host            = ENV.fetch('ES_HOST') { 'localhost' }
+port            = ENV.fetch('ES_PORT') { 9200 }
+fallback_prefix = ENV.fetch('REDIS_NAMESPACE') { nil }
+prefix          = ENV.fetch('ES_PREFIX') { fallback_prefix }
+
+Chewy.settings = {
+  host: "#{host}:#{port}",
+  prefix: prefix,
+  enabled: enabled,
+  journal: false,
+}
+
+Chewy.root_strategy = enabled ? :sidekiq : :bypass
+
+module Chewy
+  class << self
+    def enabled?
+      settings[:enabled]
+    end
+  end
+end