elasticsearch,mongoid,Ruby On Rails,elasticsearch,Mongoid" /> elasticsearch,mongoid,Ruby On Rails,elasticsearch,Mongoid" />

Ruby on rails 带字段的Rails弹性搜索模型

Ruby on rails 带字段的Rails弹性搜索模型,ruby-on-rails,elasticsearch,mongoid,Ruby On Rails,elasticsearch,Mongoid,我正在使用和 我有以下字段的简单映射: "title": { "type": "string", "fields": { "raw": { "type": "string", "i

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

"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的工作示例


谢谢

您应该能够通过模型中的以下属性定义实现这一点:

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

这似乎仍然是elasticsearch rails的一个未决问题:

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

索引:字段的名称,类型::关键字,字段:{
原始:{
类型::文本
}

}
请注意,它们并没有被弃用,而是很好而且很有活力。版本1.0中不推荐使用的是,它现在可以是一个带有嵌入式
字段的
字符串
类型,也就是上面的结构。好的,谢谢,你有rails的例子吗?是的,我的答案如下所示。请看我的评论,它抛出了一个异常…我正在使用Mongoid,这段代码引发了一个异常:“articlesvent:Class的未定义方法'attribute'”