diff options
author | ThibG <thib@sitedethib.com> | 2019-08-20 12:09:11 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-08-20 12:09:11 +0200 |
commit | bce46f2057b06e78958a42821f3ce18c945de88d (patch) | |
tree | d2ac3d5fc7bfcf13f1dc19a91d42feb8c6a945da /app/chewy/tags_index.rb | |
parent | b859eb001717dfc62aebb8eba47b84c75aebe4ef (diff) | |
parent | fae9e34484e7f68b59e7738edfe7344d3790ddfe (diff) |
Merge pull request #1199 from ThibG/glitch-soc/merge-upstream
Merge upstream changes
Diffstat (limited to 'app/chewy/tags_index.rb')
-rw-r--r-- | app/chewy/tags_index.rb | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/app/chewy/tags_index.rb b/app/chewy/tags_index.rb new file mode 100644 index 000000000..300fc128f --- /dev/null +++ b/app/chewy/tags_index.rb @@ -0,0 +1,37 @@ +# frozen_string_literal: true + +class TagsIndex < Chewy::Index + settings index: { refresh_interval: '15m' }, analysis: { + analyzer: { + content: { + tokenizer: 'keyword', + filter: %w(lowercase asciifolding cjk_width), + }, + + edge_ngram: { + tokenizer: 'edge_ngram', + filter: %w(lowercase asciifolding cjk_width), + }, + }, + + tokenizer: { + edge_ngram: { + type: 'edge_ngram', + min_gram: 2, + max_gram: 15, + }, + }, + } + + define_type ::Tag.listable, delete_if: ->(tag) { tag.destroyed? || !tag.listable? } do + root date_detection: false do + field :name, type: 'text', analyzer: 'content' do + field :edge_ngram, type: 'text', analyzer: 'edge_ngram', search_analyzer: 'content' + end + + field :reviewed, type: 'boolean', value: ->(tag) { tag.reviewed? } + field :usage, type: 'long', value: ->(tag) { tag.history.reduce(0) { |total, day| total + day[:accounts].to_i } } + field :last_status_at, type: 'date', value: ->(tag) { tag.last_status_at || tag.created_at } + end + end +end |