【问题标题】:Indexing non-model objects for search in Rails with Elasticsearch使用 Elasticsearch 在 Rails 中索引非模型对象以进行搜索
【发布时间】:2015-02-20 07:34:54
【问题描述】:

现在我的 Rails 应用程序只允许用户搜索数据库字段。他们可以上传图片,然后使用名称进行搜索。我还提取元数据并将其存储在 YAML 文件中。因此对于 fileA,元数据存储在 fileA.yml 文件中。

使用 Elasticsearch,我能够为表“文件”编制索引,并允许用户根据文件类型、文件名等(无论存储在数据库中的什么)进行搜索。但是,我还想提供元数据搜索,那么如何索引该文件的 YAML 文件呢?

如果也需要,我可以切换到其他搜索提供程序,例如 Solr。

【问题讨论】:

    标签: ruby-on-rails elasticsearch yaml


    【解决方案1】:

    您没有提及您使用什么库(elasticsearch-rails、searchkick 等)与 elasticsearch 集成,但它们都允许您自定义发送用于索引的数据。

    例如使用 elasticsearch-rails 覆盖 as_indexed_json 方法,例如

    def as_indexed_json(options={})
      as_json(options).merge(data_from_yaml)
    end
    

    对于 searchkick,你会这样做

    def search_data
      as_json.merge(data_from_yaml)
    end
    

    【讨论】:

    • 我正在使用 search kick gem 来集成弹性搜索。我可以使用此 gem 进行自定义还是需要使用弹性搜索模型 gem?
    • 不确定 elasticserach-model 是否是一个 gem,但这就是我的意思:github.com/elasticsearch/elasticsearch-rails/tree/master/…
    • @SwaathiK 是的,您可以使用 searchkick 执行此操作 - 该方法只需具有不同的名称
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-01-18
    • 2014-10-20
    • 1970-01-01
    相关资源
    最近更新 更多