修改elasticsearch查询的结果列

时间:2017-05-22 21:44:52

标签: ruby-on-rails elasticsearch elasticsearch-model

所以我接受了一个更大的项目,我不确定在哪里可以找到修改它的代码。我们有一个数据库,在那里它被读作Essay - >部分 - >我们正在尝试添加名为' video_url'的新列。我认为这与非规范化有关,但我并不完全确定。

这是Essay模型:

class Essay
  include ActiveModel::Model
  include ActiveModel::Serialization
  include Draper::Decoratable
  include Import::HtmlEssay
  include Searchable

  FACETS = %w(author)
  FULLTEXT_FIELDS = %w(title sections.title sections.body sections.figures.caption)

  def self.define_mappings!
    mapping mapping_options do
      analyzer = I18n.locale == :tr ? :turkish : :snowball

      indexes :author, index: :not_analyzed
      indexes :publication_id, index: :not_analyzed
      indexes :sequence, type: 'long'
      indexes :title, analyzer: analyzer
      indexes :sections do
        indexes :title, analyzer: analyzer
        indexes :body, analyzer: analyzer
        indexes :figures do
          indexes :caption, analyzer: analyzer
        end
      end
    end
  end

  class Query
    include Searchable::Query

     def sort
       [
         { publication_id: { order: 'asc'}},
         { sequence: { order: 'asc' }}
       ]
     end
  end
end

现在它只显示[Mash标题,信用,数字(#),网址]。我想将video_url附加到图像模型的一部分(这是我们从中提取URL的地方)但是我不确定它是如何工作的并且遇到了麻烦。我认为他们使用的唯一相关宝石是elasticsearch-model,但是我已经完成了他们的一些东西,我仍然不确定。

控制也是如此(虽然这里没有发生任何事情)如下:

class EssaysController < SearchBaseController
  def show
    @essay = Essay.find(params[:id]).decorate
  end
end

老实说,即使你不知道答案,如果你能告诉我哪里有类似的东西,那就是&#34; FULLTEXT_FIELDS&#34; var来自于它非常有帮助,如果需要,我可以编辑它以添加其他代码段。我真的需要弄清楚如何将video_url列添加到结果中,它可以在elasticsearch中使用,并且可以通过其他方法访问,但不会显示在此处。

1 个答案:

答案 0 :(得分:0)

所以我最终发现/ models / concerns / import / *中有另一个文件夹,其中包含有关数据库设置的更多信息。我不确定他们使用的是什么宝石/为什么这样设置,但是当我了解更多信息时,我会更新这个答案。