Sha256: 9ca21506f47d55e0409cdbb71afe4312d2b770a9ab6b03d559d17503d388c34b

Contents?: true

Size: 1.01 KB

Versions: 5

Compression:

Stored size: 1.01 KB

Contents

module Cadet
  module BatchInserter
    module CadetIndex
      class Index
        def initialize(lucene_index, name)
          @name = name.to_sym
          @property_index = {}
          @lucene_index = lucene_index
        end

        def add(node, property, value)
          @property_index[property.to_sym] ||= {}
          @property_index[property.to_sym][value] ||= []
          @property_index[property.to_sym][value] << node
        end

        def get(property, value)
          @property_index[property.to_sym] ||= {}
          @property_index[property.to_sym][value] || []
        end

        def flush
          lucene_node_index = @lucene_index.nodeIndex(@name, {"type" => "exact"})

          @property_index.each do |property, propval_to_node_mappings|
            propval_to_node_mappings.each do |value, nodes|
              nodes.each do |node|
                lucene_node_index.add(node, {property.to_java_string => value})
              end
            end
          end
        end

      end
    end
  end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
cadet-0.1.5-java lib/cadet/batch_inserter/cadet_index/index.rb
cadet-0.1.4-java lib/cadet/batch_inserter/cadet_index/index.rb
cadet-0.1.3-java lib/cadet/batch_inserter/cadet_index/index.rb
cadet-0.1.2-java lib/cadet/batch_inserter/cadet_index/index.rb
cadet-0.1.1-java lib/cadet/batch_inserter/cadet_index/index.rb