1

Tire の構文、Elasticsearch の構文、およびそれらがどのようにマッピングされるかについて頭を悩ませるのに苦労しました。

Tire を介して Rails アプリで PDF のインデックス作成に成功しました。しかし、クエリをより細かくできるように、完全なレポートを個々のページに分割する必要があります。belongs_toPDF を個々のページに分割し、それらを完全なレポート モデルであるページ モデルに追加するのは簡単です。私が苦労しているのは、マッピングの設定方法と場所です?!? この究極の目標を実現できるように、Elasticsearch のParent Fieldマッピングを利用したいと考えています。

誰かが私を正してくれることを願っています。

レポート モデル (PDF 全体を としてインデックス付けする場合、これはうまくいきます:attachment):

class Report < ActiveRecord::Base
  include Tire::Model::Search
  include Tire::Model::Callbacks

  has_many :pages, :dependent => :destroy
  attr_accessible :filename, :title

  tire.mapping do
    indexes :id, :type =>'integer'
    indexes :title
    indexes :attachment, :type => 'attachment',
                            :fields => {
                            :content_type => { :store => 'yes' },
                            :author     => { :store => 'yes' },
                            :title      => { :store => 'yes' },
                            :attachment => { :term_vector => 'with_positions_offsets', :store => 'yes' },
                            :date       => { :store => 'yes' }
                          }
  end

  ...
end

ページ モデル:

class Page < ActiveRecord::Base
  include Tire::Model::Search
  include Tire::Model::Callbacks

  belongs_to :report
  attr_accessible :filename, :page_num,

  tire.mapping do
    indexes :id, :type => 'integer'
    indexes :page_num, :type => 'integer'
    indexes :report_id, :type => 'integer' ###<== how is this associated with _parent?
    indexes :attachment, :type => 'attachment',
                            :fields => {
                            ...
    ...
  end
end
4

0 に答える 0