47 lines
		
	
	
		
			1.0 KiB
		
	
	
	
		
			Ruby
		
	
	
	
		
		
			
		
	
	
			47 lines
		
	
	
		
			1.0 KiB
		
	
	
	
		
			Ruby
		
	
	
	
| 
								 | 
							
								# coding: utf-8
							 | 
						||
| 
								 | 
							
								# this is from : https://github.com/jugyo/sunspot_mongoid
							 | 
						||
| 
								 | 
							
								# this file is special for mongoid_auto_increment_id
							 | 
						||
| 
								 | 
							
								require 'sunspot'
							 | 
						||
| 
								 | 
							
								require 'mongoid'
							 | 
						||
| 
								 | 
							
								require 'sunspot/rails'
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								# == Examples:
							 | 
						||
| 
								 | 
							
								#
							 | 
						||
| 
								 | 
							
								# class Post
							 | 
						||
| 
								 | 
							
								#   include Mongoid::Document
							 | 
						||
| 
								 | 
							
								#   field :title
							 | 
						||
| 
								 | 
							
								#
							 | 
						||
| 
								 | 
							
								#   include Sunspot::Mongoid
							 | 
						||
| 
								 | 
							
								#   searchable do
							 | 
						||
| 
								 | 
							
								#     text :title
							 | 
						||
| 
								 | 
							
								#   end
							 | 
						||
| 
								 | 
							
								# end
							 | 
						||
| 
								 | 
							
								#
							 | 
						||
| 
								 | 
							
								module OrbitSearchLib
							 | 
						||
| 
								 | 
							
								  module ObjectSearchable
							 | 
						||
| 
								 | 
							
								    def self.included(base)
							 | 
						||
| 
								 | 
							
								      base.class_eval do
							 | 
						||
| 
								 | 
							
								        extend Sunspot::Rails::Searchable::ActsAsMethods
							 | 
						||
| 
								 | 
							
								        Sunspot::Adapters::DataAccessor.register(DataAccessor, base)
							 | 
						||
| 
								 | 
							
								        Sunspot::Adapters::InstanceAdapter.register(InstanceAdapter, base)
							 | 
						||
| 
								 | 
							
								      end
							 | 
						||
| 
								 | 
							
								    end
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    class InstanceAdapter < Sunspot::Adapters::InstanceAdapter
							 | 
						||
| 
								 | 
							
								      def id
							 | 
						||
| 
								 | 
							
								        @instance.id
							 | 
						||
| 
								 | 
							
								      end
							 | 
						||
| 
								 | 
							
								    end
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    class DataAccessor < Sunspot::Adapters::DataAccessor
							 | 
						||
| 
								 | 
							
								      def load(id)
							 | 
						||
| 
								 | 
							
								        @clazz.where(:_id => id).first
							 | 
						||
| 
								 | 
							
								      end
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								      def load_all(ids)
							 | 
						||
| 
								 | 
							
								        @clazz.where(:_id.in => ids.collect { |id| id.to_i })
							 | 
						||
| 
								 | 
							
								      end
							 | 
						||
| 
								 | 
							
								    end
							 | 
						||
| 
								 | 
							
								  end
							 | 
						||
| 
								 | 
							
								end
							 |