方法返回对象的索引方法-elasticsearch

tyky79it  于 2021-06-14  发布在  ElasticSearch
关注(0)|答案(1)|浏览(366)

我用的是 elasticsearch-rails 宝石 Rails 6 . 我试图索引carrierwave函数的返回值 asset_host . 我可以索引 file 函数,但我不确定索引的语法 asset_host 上的方法 Uploader 对象由`file返回。
从我的模型中,我可以使用以下代码访问该函数:

Asset.first.file.asset_host

我添加了 asset_host 使用以下代码将文件Map到我的Map:

indexes :file do
    indexes :asset_host, type: "text"
end

这是我尝试将方法添加到 as_indexed_json 我遇到的问题是:

def as_indexed_json(options={})
    as_json(methods: {file: [:asset_host]})
end

这是我得到的错误代码 as_indexed_json 当我尝试重新索引文档时:

TypeError ([:file, [:asset_host]] is not a symbol nor a string)

我猜这个功能不受支持?有解决办法吗?

weylhg0b

weylhg0b1#

好像是个 as_json 问题。也许你可以试试

as_json(
  only: [],  # exclude all "normal" attributes
  include: {file: {only: :asset_host}}
)

相关问题