4
Cross post from GitHub:タイヤ/ ElasticSearchシングルテーブル継承のサポート
...私は、基本クラス以下のいるおいしい、Twitterのようなさまざまなサードパーティのサービス内のリンクのための私のアプリの検索:
class Link
include Mongoid::Document
include Tire::Model::Search
include Tire::Model::Callbacks
field :href, type: String
field :name, type: String
mapping do
indexes :href, type: 'string', analyzer: 'url'
indexes :name, type: 'string', analyzer: 'keyword', boost: 10
end
end
と以下のクラスから継承しますLink
さらに2つのフィールドを追加します。
class Link::Delicious < Link
field :tags, type: Array
field :time, type: Time
mapping do
indexes :tags, type: 'string', analyzer: 'keyword'
indexes :time, type: 'date'
end
end
検索は、基本クラスを介して行われます:Link.search('google.com')
。これを稼働させる機会はありますか?現時点では、Link::Delicious
の(追加の)フィールドは、Tire/ElasticSearchによって完全に無視されます。そのようmapping
メソッドを上書きすることで固定