Sha256: d01de389d1e1c8e7a2b7b510578213b6d762190d9f436d0c01f1a36abccb51fc
Contents?: true
Size: 685 Bytes
Versions: 7
Compression:
Stored size: 685 Bytes
Contents
# frozen_string_literal: true module Valkyrie::Persistence::Solr::Queries class FindManyByIdsQuery attr_reader :connection, :resource_factory attr_accessor :ids def initialize(ids, connection:, resource_factory:) @ids = ids @connection = connection @resource_factory = resource_factory end def run resources.map { |solr_resource| resource_factory.to_resource(object: solr_resource) } end def resources id_query = ids.map { |id| "\"#{id}\"" }.join(' OR ') @resources ||= connection.get("select", params: { q: "id:(#{id_query})", fl: "*", defType: 'lucene', rows: 1_000_000_000 })["response"]["docs"] end end end
Version data entries
7 entries across 7 versions & 1 rubygems