1

我开始实施 ElasticSearch 来代替旧的自制搜索引擎。我迁移了代码的主要部分,但我必须呈现回形针提供的 url,而且我的结果中没有正确的对象

has_attached_file :content, url: '/system/:attachment/:id/:style/:filename'

mapping do
  indexes :name
  indexes :description
  indexes :tags do
     indexes :name, type:  :string
  end
  indexes :content, type: :object do
    indexes :url
  end
end


def to_indexed_json
  {
    name: name,
    description: description,
    tags: tags.map { |tag| { name: tag.name }},
    content: content_url_json
  }.to_json
end

这是我使用 curl 查询 Elasticsearch 时的结果

{
  "element": {
    "properties": {
      "content": {
        "type": "string"
      },
      "name": {
        "type": "string"
      },
      "tags": {
        "properties": {
          "name": {
            "type": "string"
          }
        }
      }
    }
  }
}

我需要打电话element.content.url。但是由于我无法转向content对象,因此此调用将失败。你能帮我找到如何找到我的代码中的问题吗?

4

1 回答 1

0

解决。查看代码,块似乎被解释了。所以我换了

indexes :content, type: :object do
    indexes :url
end

经过

indexes :content { url: {type: :string}}

解决了问题

于 2013-06-04T14:36:55.023 回答