Rails ElasticSearch模型与字段

时间:2015-07-26 21:52:13

标签: ruby-on-rails elasticsearch mongoid

我正在使用elasticsearch-railsmongoid 我有以下简单的字段映射:

"title": {
              "type": "string",
              "fields": {
                 "raw": {
                    "type": "string",
                    "index": "not_analyzed"
                 }
              }
           }

我的模型看起来像这样:

class ArticlesEvent
include Mongoid::Document
include Elasticsearch::Model

field :title, type: String

attr_accessible :title

def as_indexed_json(options={})
  as_json(except: [:id, :_id])
end

任何人都可以展示如何使用title.raw字段定义rails模型以及如何访问该字段的示例吗?由于多字段已被弃用,因此很难找到使用rails和mongoid的工作示例。

由于

3 个答案:

答案 0 :(得分:2)

您应该能够在模型中使用以下属性定义来实现此目的:

attribute :title, String, mapping: { 
    fields: {
       raw:  { type: 'string', index: 'not_analyzed' }
    } 
}

答案 1 :(得分:0)

看起来这仍然是elasticsearch-rails:https://github.com/elastic/elasticsearch-rails/issues/79

的一个未解决的问题

答案 2 :(得分:0)

您可以在模型中定义以下映射

indexes :name_of_field,type: :keyword, fields: {
    raw: {
      type: :text
    }
  }