sunspot_rails 2.0.0.pre.120924 → 2.0.0.pre.120925

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (293) hide show
  1. data/.gitignore +6 -10
  2. data/{sunspot_rails/.rspec → .rspec} +0 -0
  3. data/{sunspot_rails/History.txt → History.txt} +0 -0
  4. data/{sunspot/LICENSE → LICENSE} +0 -0
  5. data/{sunspot_rails/MIT-LICENSE → MIT-LICENSE} +0 -0
  6. data/{sunspot_rails/README.rdoc → README.rdoc} +0 -0
  7. data/Rakefile +12 -32
  8. data/{sunspot_rails/TODO → TODO} +0 -0
  9. data/{sunspot_rails/dev_tasks → dev_tasks}/rdoc.rake +0 -0
  10. data/{sunspot_rails/dev_tasks → dev_tasks}/release.rake +0 -0
  11. data/{sunspot_rails/dev_tasks → dev_tasks}/spec.rake +0 -0
  12. data/{sunspot/tasks → dev_tasks}/todo.rake +0 -0
  13. data/{sunspot_rails/gemfiles → gemfiles}/rails-2.3.14 +0 -0
  14. data/{sunspot_rails/gemfiles → gemfiles}/rails-3.0.15 +0 -0
  15. data/{sunspot_rails/gemfiles → gemfiles}/rails-3.1.6 +0 -0
  16. data/{sunspot_rails/gemfiles → gemfiles}/rails-3.2.6 +0 -0
  17. data/{sunspot_rails/generators → generators}/sunspot/sunspot_generator.rb +0 -0
  18. data/{sunspot_rails/generators → generators}/sunspot/templates/sunspot.yml +0 -0
  19. data/{sunspot_rails/install.rb → install.rb} +0 -0
  20. data/{sunspot_rails/lib → lib}/generators/sunspot_rails.rb +0 -0
  21. data/{sunspot_rails/lib → lib}/generators/sunspot_rails/install/install_generator.rb +0 -0
  22. data/{sunspot_rails/lib → lib}/generators/sunspot_rails/install/templates/config/sunspot.yml +0 -0
  23. data/{sunspot_rails/lib → lib}/sunspot/rails.rb +0 -0
  24. data/{sunspot_rails/lib → lib}/sunspot/rails/adapters.rb +0 -0
  25. data/{sunspot_rails/lib → lib}/sunspot/rails/configuration.rb +0 -0
  26. data/{sunspot_rails/lib → lib}/sunspot/rails/init.rb +0 -0
  27. data/{sunspot_rails/lib → lib}/sunspot/rails/log_subscriber.rb +0 -0
  28. data/{sunspot_rails/lib → lib}/sunspot/rails/railtie.rb +0 -0
  29. data/{sunspot_rails/lib → lib}/sunspot/rails/railties/controller_runtime.rb +0 -0
  30. data/{sunspot_rails/lib → lib}/sunspot/rails/request_lifecycle.rb +0 -0
  31. data/{sunspot_rails/lib → lib}/sunspot/rails/searchable.rb +0 -0
  32. data/{sunspot_rails/lib → lib}/sunspot/rails/server.rb +0 -0
  33. data/{sunspot_rails/lib → lib}/sunspot/rails/solr_instrumentation.rb +0 -0
  34. data/{sunspot_rails/lib → lib}/sunspot/rails/solr_logging.rb +0 -0
  35. data/{sunspot_rails/lib → lib}/sunspot/rails/spec_helper.rb +0 -0
  36. data/{sunspot_rails/lib → lib}/sunspot/rails/stub_session_proxy.rb +0 -0
  37. data/{sunspot_rails/lib → lib}/sunspot/rails/tasks.rb +0 -0
  38. data/{sunspot_rails/lib → lib}/sunspot_rails.rb +0 -0
  39. data/{sunspot_rails/spec → spec}/configuration_spec.rb +0 -0
  40. data/{sunspot_rails/spec → spec}/model_lifecycle_spec.rb +0 -0
  41. data/{sunspot_rails/spec → spec}/model_spec.rb +0 -0
  42. data/{sunspot_rails/spec → spec}/rails_template/app/controllers/application_controller.rb +0 -0
  43. data/{sunspot_rails/spec → spec}/rails_template/app/controllers/posts_controller.rb +0 -0
  44. data/{sunspot_rails/spec → spec}/rails_template/app/models/author.rb +0 -0
  45. data/{sunspot_rails/spec → spec}/rails_template/app/models/blog.rb +0 -0
  46. data/{sunspot_rails/spec → spec}/rails_template/app/models/location.rb +0 -0
  47. data/{sunspot_rails/spec → spec}/rails_template/app/models/photo_post.rb +0 -0
  48. data/{sunspot_rails/spec → spec}/rails_template/app/models/post.rb +0 -0
  49. data/{sunspot_rails/spec → spec}/rails_template/app/models/post_with_auto.rb +0 -0
  50. data/{sunspot_rails/spec → spec}/rails_template/app/models/post_with_default_scope.rb +0 -0
  51. data/{sunspot_rails/spec → spec}/rails_template/config/boot.rb +0 -0
  52. data/{sunspot_rails/spec → spec}/rails_template/config/preinitializer.rb +0 -0
  53. data/{sunspot_rails/spec → spec}/rails_template/config/routes.rb +0 -0
  54. data/{sunspot_rails/spec → spec}/rails_template/config/sunspot.yml +0 -0
  55. data/{sunspot_rails/spec → spec}/rails_template/db/schema.rb +0 -0
  56. data/{sunspot_rails/spec → spec}/request_lifecycle_spec.rb +0 -0
  57. data/{sunspot_rails/spec → spec}/schema.rb +0 -0
  58. data/{sunspot_rails/spec → spec}/searchable_spec.rb +0 -0
  59. data/{sunspot_rails/spec → spec}/server_spec.rb +0 -0
  60. data/{sunspot_rails/spec → spec}/session_spec.rb +0 -0
  61. data/{sunspot_rails/spec → spec}/shared_examples/indexed_after_save.rb +0 -0
  62. data/{sunspot_rails/spec → spec}/shared_examples/not_indexed_after_save.rb +0 -0
  63. data/{sunspot_rails/spec → spec}/spec_helper.rb +0 -0
  64. data/{sunspot_rails/spec → spec}/stub_session_proxy_spec.rb +0 -0
  65. data/{sunspot_rails/sunspot_rails.gemspec → sunspot_rails.gemspec} +0 -0
  66. metadata +102 -305
  67. data/.travis.yml +0 -35
  68. data/README.md +0 -863
  69. data/ci/travis.sh +0 -67
  70. data/sunspot/.gitignore +0 -13
  71. data/sunspot/Gemfile +0 -5
  72. data/sunspot/History.txt +0 -258
  73. data/sunspot/Rakefile +0 -13
  74. data/sunspot/TODO +0 -13
  75. data/sunspot/lib/light_config.rb +0 -40
  76. data/sunspot/lib/sunspot.rb +0 -579
  77. data/sunspot/lib/sunspot/adapters.rb +0 -349
  78. data/sunspot/lib/sunspot/batcher.rb +0 -62
  79. data/sunspot/lib/sunspot/class_set.rb +0 -23
  80. data/sunspot/lib/sunspot/composite_setup.rb +0 -202
  81. data/sunspot/lib/sunspot/configuration.rb +0 -53
  82. data/sunspot/lib/sunspot/data_extractor.rb +0 -50
  83. data/sunspot/lib/sunspot/dsl.rb +0 -5
  84. data/sunspot/lib/sunspot/dsl/adjustable.rb +0 -47
  85. data/sunspot/lib/sunspot/dsl/field_group.rb +0 -57
  86. data/sunspot/lib/sunspot/dsl/field_query.rb +0 -345
  87. data/sunspot/lib/sunspot/dsl/fields.rb +0 -103
  88. data/sunspot/lib/sunspot/dsl/fulltext.rb +0 -243
  89. data/sunspot/lib/sunspot/dsl/function.rb +0 -27
  90. data/sunspot/lib/sunspot/dsl/functional.rb +0 -44
  91. data/sunspot/lib/sunspot/dsl/more_like_this_query.rb +0 -56
  92. data/sunspot/lib/sunspot/dsl/paginatable.rb +0 -32
  93. data/sunspot/lib/sunspot/dsl/query_facet.rb +0 -36
  94. data/sunspot/lib/sunspot/dsl/restriction.rb +0 -25
  95. data/sunspot/lib/sunspot/dsl/restriction_with_near.rb +0 -160
  96. data/sunspot/lib/sunspot/dsl/scope.rb +0 -214
  97. data/sunspot/lib/sunspot/dsl/search.rb +0 -30
  98. data/sunspot/lib/sunspot/dsl/standard_query.rb +0 -122
  99. data/sunspot/lib/sunspot/field.rb +0 -193
  100. data/sunspot/lib/sunspot/field_factory.rb +0 -129
  101. data/sunspot/lib/sunspot/indexer.rb +0 -136
  102. data/sunspot/lib/sunspot/query.rb +0 -11
  103. data/sunspot/lib/sunspot/query/abstract_field_facet.rb +0 -55
  104. data/sunspot/lib/sunspot/query/bbox.rb +0 -15
  105. data/sunspot/lib/sunspot/query/boost_query.rb +0 -24
  106. data/sunspot/lib/sunspot/query/common_query.rb +0 -96
  107. data/sunspot/lib/sunspot/query/composite_fulltext.rb +0 -36
  108. data/sunspot/lib/sunspot/query/connective.rb +0 -206
  109. data/sunspot/lib/sunspot/query/date_field_facet.rb +0 -14
  110. data/sunspot/lib/sunspot/query/dismax.rb +0 -132
  111. data/sunspot/lib/sunspot/query/field_facet.rb +0 -41
  112. data/sunspot/lib/sunspot/query/field_group.rb +0 -37
  113. data/sunspot/lib/sunspot/query/filter.rb +0 -38
  114. data/sunspot/lib/sunspot/query/function_query.rb +0 -52
  115. data/sunspot/lib/sunspot/query/geo.rb +0 -53
  116. data/sunspot/lib/sunspot/query/geofilt.rb +0 -16
  117. data/sunspot/lib/sunspot/query/highlighting.rb +0 -62
  118. data/sunspot/lib/sunspot/query/more_like_this.rb +0 -61
  119. data/sunspot/lib/sunspot/query/more_like_this_query.rb +0 -12
  120. data/sunspot/lib/sunspot/query/pagination.rb +0 -42
  121. data/sunspot/lib/sunspot/query/query_facet.rb +0 -53
  122. data/sunspot/lib/sunspot/query/range_facet.rb +0 -15
  123. data/sunspot/lib/sunspot/query/restriction.rb +0 -308
  124. data/sunspot/lib/sunspot/query/scope.rb +0 -9
  125. data/sunspot/lib/sunspot/query/sort.rb +0 -109
  126. data/sunspot/lib/sunspot/query/sort_composite.rb +0 -34
  127. data/sunspot/lib/sunspot/query/standard_query.rb +0 -16
  128. data/sunspot/lib/sunspot/query/text_field_boost.rb +0 -17
  129. data/sunspot/lib/sunspot/schema.rb +0 -151
  130. data/sunspot/lib/sunspot/search.rb +0 -9
  131. data/sunspot/lib/sunspot/search/abstract_search.rb +0 -286
  132. data/sunspot/lib/sunspot/search/date_facet.rb +0 -35
  133. data/sunspot/lib/sunspot/search/facet_row.rb +0 -27
  134. data/sunspot/lib/sunspot/search/field_facet.rb +0 -88
  135. data/sunspot/lib/sunspot/search/field_group.rb +0 -70
  136. data/sunspot/lib/sunspot/search/group.rb +0 -54
  137. data/sunspot/lib/sunspot/search/highlight.rb +0 -38
  138. data/sunspot/lib/sunspot/search/hit.rb +0 -150
  139. data/sunspot/lib/sunspot/search/hit_enumerable.rb +0 -68
  140. data/sunspot/lib/sunspot/search/more_like_this_search.rb +0 -31
  141. data/sunspot/lib/sunspot/search/paginated_collection.rb +0 -57
  142. data/sunspot/lib/sunspot/search/query_facet.rb +0 -67
  143. data/sunspot/lib/sunspot/search/range_facet.rb +0 -37
  144. data/sunspot/lib/sunspot/search/standard_search.rb +0 -21
  145. data/sunspot/lib/sunspot/session.rb +0 -262
  146. data/sunspot/lib/sunspot/session_proxy.rb +0 -95
  147. data/sunspot/lib/sunspot/session_proxy/abstract_session_proxy.rb +0 -29
  148. data/sunspot/lib/sunspot/session_proxy/class_sharding_session_proxy.rb +0 -66
  149. data/sunspot/lib/sunspot/session_proxy/id_sharding_session_proxy.rb +0 -89
  150. data/sunspot/lib/sunspot/session_proxy/master_slave_session_proxy.rb +0 -43
  151. data/sunspot/lib/sunspot/session_proxy/retry_5xx_session_proxy.rb +0 -67
  152. data/sunspot/lib/sunspot/session_proxy/sharding_session_proxy.rb +0 -222
  153. data/sunspot/lib/sunspot/session_proxy/silent_fail_session_proxy.rb +0 -42
  154. data/sunspot/lib/sunspot/session_proxy/thread_local_session_proxy.rb +0 -37
  155. data/sunspot/lib/sunspot/setup.rb +0 -350
  156. data/sunspot/lib/sunspot/text_field_setup.rb +0 -29
  157. data/sunspot/lib/sunspot/type.rb +0 -393
  158. data/sunspot/lib/sunspot/util.rb +0 -252
  159. data/sunspot/lib/sunspot/version.rb +0 -3
  160. data/sunspot/script/console +0 -10
  161. data/sunspot/spec/api/adapters_spec.rb +0 -68
  162. data/sunspot/spec/api/batcher_spec.rb +0 -112
  163. data/sunspot/spec/api/binding_spec.rb +0 -50
  164. data/sunspot/spec/api/class_set_spec.rb +0 -24
  165. data/sunspot/spec/api/hit_enumerable_spec.rb +0 -47
  166. data/sunspot/spec/api/indexer/attributes_spec.rb +0 -149
  167. data/sunspot/spec/api/indexer/batch_spec.rb +0 -72
  168. data/sunspot/spec/api/indexer/dynamic_fields_spec.rb +0 -42
  169. data/sunspot/spec/api/indexer/fixed_fields_spec.rb +0 -57
  170. data/sunspot/spec/api/indexer/fulltext_spec.rb +0 -43
  171. data/sunspot/spec/api/indexer/removal_spec.rb +0 -53
  172. data/sunspot/spec/api/indexer/spec_helper.rb +0 -1
  173. data/sunspot/spec/api/indexer_spec.rb +0 -14
  174. data/sunspot/spec/api/query/advanced_manipulation_examples.rb +0 -35
  175. data/sunspot/spec/api/query/connectives_examples.rb +0 -201
  176. data/sunspot/spec/api/query/dsl_spec.rb +0 -18
  177. data/sunspot/spec/api/query/dynamic_fields_examples.rb +0 -165
  178. data/sunspot/spec/api/query/faceting_examples.rb +0 -497
  179. data/sunspot/spec/api/query/fulltext_examples.rb +0 -313
  180. data/sunspot/spec/api/query/function_spec.rb +0 -79
  181. data/sunspot/spec/api/query/geo_examples.rb +0 -68
  182. data/sunspot/spec/api/query/group_spec.rb +0 -32
  183. data/sunspot/spec/api/query/highlighting_examples.rb +0 -245
  184. data/sunspot/spec/api/query/more_like_this_spec.rb +0 -140
  185. data/sunspot/spec/api/query/ordering_pagination_examples.rb +0 -116
  186. data/sunspot/spec/api/query/scope_examples.rb +0 -275
  187. data/sunspot/spec/api/query/spatial_examples.rb +0 -27
  188. data/sunspot/spec/api/query/spec_helper.rb +0 -1
  189. data/sunspot/spec/api/query/standard_spec.rb +0 -29
  190. data/sunspot/spec/api/query/text_field_scoping_examples.rb +0 -30
  191. data/sunspot/spec/api/query/types_spec.rb +0 -20
  192. data/sunspot/spec/api/search/dynamic_fields_spec.rb +0 -33
  193. data/sunspot/spec/api/search/faceting_spec.rb +0 -360
  194. data/sunspot/spec/api/search/highlighting_spec.rb +0 -69
  195. data/sunspot/spec/api/search/hits_spec.rb +0 -147
  196. data/sunspot/spec/api/search/paginated_collection_spec.rb +0 -36
  197. data/sunspot/spec/api/search/results_spec.rb +0 -72
  198. data/sunspot/spec/api/search/search_spec.rb +0 -23
  199. data/sunspot/spec/api/search/spec_helper.rb +0 -1
  200. data/sunspot/spec/api/session_proxy/class_sharding_session_proxy_spec.rb +0 -85
  201. data/sunspot/spec/api/session_proxy/id_sharding_session_proxy_spec.rb +0 -30
  202. data/sunspot/spec/api/session_proxy/master_slave_session_proxy_spec.rb +0 -41
  203. data/sunspot/spec/api/session_proxy/retry_5xx_session_proxy_spec.rb +0 -78
  204. data/sunspot/spec/api/session_proxy/sharding_session_proxy_spec.rb +0 -77
  205. data/sunspot/spec/api/session_proxy/silent_fail_session_proxy_spec.rb +0 -24
  206. data/sunspot/spec/api/session_proxy/spec_helper.rb +0 -9
  207. data/sunspot/spec/api/session_proxy/thread_local_session_proxy_spec.rb +0 -39
  208. data/sunspot/spec/api/session_spec.rb +0 -232
  209. data/sunspot/spec/api/spec_helper.rb +0 -3
  210. data/sunspot/spec/api/sunspot_spec.rb +0 -29
  211. data/sunspot/spec/ext.rb +0 -11
  212. data/sunspot/spec/helpers/indexer_helper.rb +0 -17
  213. data/sunspot/spec/helpers/integration_helper.rb +0 -8
  214. data/sunspot/spec/helpers/mock_session_helper.rb +0 -13
  215. data/sunspot/spec/helpers/query_helper.rb +0 -26
  216. data/sunspot/spec/helpers/search_helper.rb +0 -68
  217. data/sunspot/spec/integration/dynamic_fields_spec.rb +0 -57
  218. data/sunspot/spec/integration/faceting_spec.rb +0 -330
  219. data/sunspot/spec/integration/field_grouping_spec.rb +0 -100
  220. data/sunspot/spec/integration/geospatial_spec.rb +0 -96
  221. data/sunspot/spec/integration/highlighting_spec.rb +0 -44
  222. data/sunspot/spec/integration/indexing_spec.rb +0 -55
  223. data/sunspot/spec/integration/keyword_search_spec.rb +0 -317
  224. data/sunspot/spec/integration/local_search_spec.rb +0 -64
  225. data/sunspot/spec/integration/more_like_this_spec.rb +0 -43
  226. data/sunspot/spec/integration/scoped_search_spec.rb +0 -386
  227. data/sunspot/spec/integration/stored_fields_spec.rb +0 -12
  228. data/sunspot/spec/integration/test_pagination.rb +0 -43
  229. data/sunspot/spec/integration/unicode_spec.rb +0 -15
  230. data/sunspot/spec/mocks/adapters.rb +0 -33
  231. data/sunspot/spec/mocks/blog.rb +0 -3
  232. data/sunspot/spec/mocks/comment.rb +0 -21
  233. data/sunspot/spec/mocks/connection.rb +0 -126
  234. data/sunspot/spec/mocks/mock_adapter.rb +0 -30
  235. data/sunspot/spec/mocks/mock_class_sharding_session_proxy.rb +0 -24
  236. data/sunspot/spec/mocks/mock_record.rb +0 -52
  237. data/sunspot/spec/mocks/mock_sharding_session_proxy.rb +0 -15
  238. data/sunspot/spec/mocks/photo.rb +0 -11
  239. data/sunspot/spec/mocks/post.rb +0 -86
  240. data/sunspot/spec/mocks/super_class.rb +0 -2
  241. data/sunspot/spec/mocks/user.rb +0 -13
  242. data/sunspot/spec/spec_helper.rb +0 -40
  243. data/sunspot/sunspot.gemspec +0 -37
  244. data/sunspot/tasks/rdoc.rake +0 -27
  245. data/sunspot/tasks/schema.rake +0 -19
  246. data/sunspot_rails/.gitignore +0 -7
  247. data/sunspot_rails/LICENSE +0 -18
  248. data/sunspot_rails/Rakefile +0 -17
  249. data/sunspot_rails/dev_tasks/todo.rake +0 -4
  250. data/sunspot_solr/Gemfile +0 -3
  251. data/sunspot_solr/README.rdoc +0 -24
  252. data/sunspot_solr/bin/sunspot-installer +0 -20
  253. data/sunspot_solr/bin/sunspot-solr +0 -80
  254. data/sunspot_solr/lib/sunspot/solr/installer.rb +0 -25
  255. data/sunspot_solr/lib/sunspot/solr/installer/config_installer.rb +0 -46
  256. data/sunspot_solr/lib/sunspot/solr/installer/task_helper.rb +0 -13
  257. data/sunspot_solr/lib/sunspot/solr/java.rb +0 -10
  258. data/sunspot_solr/lib/sunspot/solr/railtie.rb +0 -15
  259. data/sunspot_solr/lib/sunspot/solr/server.rb +0 -223
  260. data/sunspot_solr/lib/sunspot/solr/tasks.rb +0 -49
  261. data/sunspot_solr/lib/sunspot_solr.rb +0 -5
  262. data/sunspot_solr/solr/README.txt +0 -42
  263. data/sunspot_solr/solr/etc/jetty.xml +0 -219
  264. data/sunspot_solr/solr/etc/webdefault.xml +0 -379
  265. data/sunspot_solr/solr/lib/jetty-6.1.26-patched-JETTY-1340.jar +0 -0
  266. data/sunspot_solr/solr/lib/jetty-util-6.1.26-patched-JETTY-1340.jar +0 -0
  267. data/sunspot_solr/solr/lib/jsp-2.1/ant-1.6.5.jar +0 -0
  268. data/sunspot_solr/solr/lib/jsp-2.1/core-3.1.1.jar +0 -0
  269. data/sunspot_solr/solr/lib/jsp-2.1/jsp-2.1.jar +0 -0
  270. data/sunspot_solr/solr/lib/jsp-2.1/jsp-api-2.1.jar +0 -0
  271. data/sunspot_solr/solr/lib/servlet-api-2.5-20081211.jar +0 -0
  272. data/sunspot_solr/solr/solr/.gitignore +0 -1
  273. data/sunspot_solr/solr/solr/README.txt +0 -54
  274. data/sunspot_solr/solr/solr/conf/admin-extra.html +0 -31
  275. data/sunspot_solr/solr/solr/conf/elevate.xml +0 -36
  276. data/sunspot_solr/solr/solr/conf/mapping-ISOLatin1Accent.txt +0 -246
  277. data/sunspot_solr/solr/solr/conf/protwords.txt +0 -21
  278. data/sunspot_solr/solr/solr/conf/schema.xml +0 -250
  279. data/sunspot_solr/solr/solr/conf/scripts.conf +0 -24
  280. data/sunspot_solr/solr/solr/conf/solrconfig.xml +0 -934
  281. data/sunspot_solr/solr/solr/conf/spellings.txt +0 -2
  282. data/sunspot_solr/solr/solr/conf/stopwords.txt +0 -58
  283. data/sunspot_solr/solr/solr/conf/synonyms.txt +0 -31
  284. data/sunspot_solr/solr/solr/conf/xslt/example.xsl +0 -132
  285. data/sunspot_solr/solr/solr/conf/xslt/example_atom.xsl +0 -67
  286. data/sunspot_solr/solr/solr/conf/xslt/example_rss.xsl +0 -66
  287. data/sunspot_solr/solr/solr/conf/xslt/luke.xsl +0 -337
  288. data/sunspot_solr/solr/start.jar +0 -0
  289. data/sunspot_solr/solr/webapps/solr.war +0 -0
  290. data/sunspot_solr/spec/server_spec.rb +0 -98
  291. data/sunspot_solr/spec/spec_helper.rb +0 -18
  292. data/sunspot_solr/sunspot_solr.gemspec +0 -37
  293. data/tools/gem_tasks.rb +0 -69
@@ -1,68 +0,0 @@
1
- module Sunspot
2
- module Search
3
- module HitEnumerable #:nodoc:
4
- def hits(options = {})
5
- if options[:verify]
6
- verified_hits
7
- elsif solr_docs
8
- solr_docs.map { |d| Hit.new(d, highlights_for(d), self) }
9
- else
10
- []
11
- end
12
- end
13
-
14
- def verified_hits
15
- hits.select { |h| h.result }
16
- end
17
-
18
- #
19
- # Populate the Hit objects with their instances. This is invoked the first
20
- # time any hit has its instance requested, and all hits are loaded as a
21
- # batch.
22
- #
23
- def populate_hits #:nodoc:
24
- id_hit_hash = Hash.new { |h, k| h[k] = {} }
25
- hits.each do |hit|
26
- id_hit_hash[hit.class_name][hit.primary_key] = hit
27
- end
28
- id_hit_hash.each_pair do |class_name, hits|
29
- ids = hits.map { |id, hit| hit.primary_key }
30
- data_accessor = data_accessor_for(Util.full_const_get(class_name))
31
- hits_for_class = id_hit_hash[class_name]
32
- data_accessor.load_all(ids).each do |result|
33
- hit = hits_for_class.delete(Adapters::InstanceAdapter.adapt(result).id.to_s)
34
- hit.result = result
35
- end
36
- hits_for_class.values.each { |hit| hit.result = nil }
37
- end
38
- end
39
-
40
- #
41
- # Convenience method to iterate over hit and result objects. Block is
42
- # yielded a Sunspot::Server::Hit instance and a Sunspot::Server::Result
43
- # instance.
44
- #
45
- # Note that this method iterates over verified hits (see #hits method
46
- # for more information).
47
- #
48
- def each_hit_with_result
49
- return enum_for(:each_hit_with_result) unless block_given?
50
- verified_hits.each { |hit| yield hit, hit.result }
51
- end
52
-
53
- #
54
- # Get the data accessor that will be used to load a particular class out of
55
- # persistent storage. Data accessors can implement any methods that may be
56
- # useful for refining how data is loaded out of storage. When building a
57
- # search manually (e.g., using the Sunspot#new_search method), this should
58
- # be used before calling #execute(). Use the
59
- # Sunspot::DSL::Search#data_accessor_for method when building searches using
60
- # the block DSL.
61
- #
62
- def data_accessor_for(clazz) #:nodoc:
63
- @registry ||= Sunspot::Adapters::Registry.new
64
- @registry.retrieve(clazz)
65
- end
66
- end
67
- end
68
- end
@@ -1,31 +0,0 @@
1
- module Sunspot
2
- #
3
- # This class encapsulates the results of a Solr MoreLikeThis search. It provides access
4
- # to search results, total result count, and pagination information.
5
- # Instances of MoreLikeThis are returned by the Sunspot.more_like_this and
6
- # Sunspot.new_more_like_this methods.
7
- #
8
- module Search
9
- class MoreLikeThisSearch < AbstractSearch
10
- def execute
11
- if @query.more_like_this.fields.empty?
12
- @setup.all_more_like_this_fields.each do |field|
13
- @query.more_like_this.add_field(field)
14
- end
15
- end
16
- super
17
- end
18
-
19
- def request_handler
20
- super || :mlt
21
- end
22
-
23
- private
24
-
25
- # override
26
- def dsl
27
- DSL::MoreLikeThisQuery.new(self, @query, @setup)
28
- end
29
- end
30
- end
31
- end
@@ -1,57 +0,0 @@
1
- module Sunspot
2
- module Search
3
-
4
- class PaginatedCollection
5
- instance_methods.each { |m| undef_method m unless m =~ /^__|instance_eval|object_id/ }
6
-
7
- attr_reader :current_page, :per_page
8
- attr_accessor :total_count
9
- alias :total_entries :total_count
10
- alias :total_entries= :total_count=
11
- alias :limit_value :per_page
12
-
13
- def initialize(collection, page, per_page, total)
14
- @collection = collection
15
- @current_page = page
16
- @per_page = per_page
17
- @total_count = total
18
- end
19
-
20
- def total_pages
21
- (total_count.to_f / per_page).ceil
22
- end
23
- alias :num_pages :total_pages
24
-
25
- def first_page?
26
- current_page == 1
27
- end
28
-
29
- def last_page?
30
- current_page >= total_pages
31
- end
32
-
33
- def previous_page
34
- current_page > 1 ? (current_page - 1) : nil
35
- end
36
-
37
- def next_page
38
- current_page < total_pages ? (current_page + 1) : nil
39
- end
40
-
41
- def out_of_bounds?
42
- current_page > total_pages
43
- end
44
-
45
- def offset
46
- (current_page - 1) * per_page
47
- end
48
-
49
- private
50
-
51
- def method_missing(method, *args, &block)
52
- @collection.send(method, *args, &block)
53
- end
54
-
55
- end
56
- end
57
- end
@@ -1,67 +0,0 @@
1
- module Sunspot
2
- module Search
3
- class QueryFacet
4
- RequestedFacet = Struct.new(:label, :boolean_phrase) #:nodoc:
5
-
6
- attr_reader :name
7
-
8
- def initialize(name, search, options) #:nodoc:
9
- @name, @search, @options = name, search, options
10
- @requested_facets = []
11
- end
12
-
13
- def rows(options = {})
14
- @rows ||=
15
- begin
16
- data = @search.facet_response['facet_queries']
17
- rows = []
18
- minimum_count =
19
- case
20
- when @options[:minimum_count] then @options[:minimum_count]
21
- when @options[:zeros] then 0
22
- else 1
23
- end
24
- @requested_facets.each do |requested_facet|
25
- count = data[requested_facet.boolean_phrase] || 0
26
- if count >= minimum_count
27
- rows << FacetRow.new(requested_facet.label, count, self)
28
- end
29
- end
30
- sort_rows!(rows)
31
- end
32
- end
33
-
34
- def add_row(label, boolean_phrase) #:nodoc:
35
- @requested_facets << RequestedFacet.new(label, boolean_phrase)
36
- end
37
-
38
- private
39
-
40
- def sort_rows!(rows)
41
- case @options[:sort] || (:count if limit)
42
- when :count
43
- rows.sort! { |lrow, rrow| rrow.count <=> lrow.count }
44
- when :index
45
- rows.sort! do |lrow, rrow|
46
- if lrow.respond_to?(:<=>)
47
- lrow.value <=> rrow.value
48
- elsif lrow.respond_to?(:first) && rrow.respond_to?(:first) && lrow.first.respond_to?(:<=>)
49
- lrow.first.value <=> rrow.first.value
50
- else
51
- lrow.value.to_s <=> rrow.value.to_s
52
- end
53
- end
54
- end
55
- if limit
56
- rows.replace(rows.first(limit))
57
- end
58
- rows
59
- end
60
-
61
- def limit
62
- return @limit if defined?(@limit)
63
- @limit = (@options[:limit].to_i if @options[:limit].to_i > 0)
64
- end
65
- end
66
- end
67
- end
@@ -1,37 +0,0 @@
1
- module Sunspot
2
- module Search
3
- class RangeFacet
4
- def initialize(field, search, options)
5
- @field, @search, @options = field, search, options
6
- end
7
-
8
- def field_name
9
- @field.name
10
- end
11
-
12
- def rows
13
- @rows ||=
14
- begin
15
- data = @search.facet_response['facet_ranges'][@field.indexed_name]
16
- gap = (@options[:range_interval] || 10).to_i
17
- rows = []
18
-
19
- if data['counts']
20
- Hash[*data['counts']].each_pair do |start_str, count|
21
- start = start_str.to_f
22
- finish = start + gap
23
- rows << FacetRow.new(start..finish, count, self)
24
- end
25
- end
26
-
27
- if @options[:sort] == :count
28
- rows.sort! { |lrow, rrow| rrow.count <=> lrow.count }
29
- else
30
- rows.sort! { |lrow, rrow| lrow.value.first <=> rrow.value.first }
31
- end
32
- rows
33
- end
34
- end
35
- end
36
- end
37
- end
@@ -1,21 +0,0 @@
1
- module Sunspot
2
- module Search
3
- #
4
- # This class encapsulates the results of a Solr search. It provides access
5
- # to search results, total result count, facets, and pagination information.
6
- # Instances of Search are returned by the Sunspot.search and
7
- # Sunspot.new_search methods.
8
- #
9
- class StandardSearch < AbstractSearch
10
- def request_handler
11
- super || :select
12
- end
13
-
14
- private
15
-
16
- def dsl
17
- DSL::Search.new(self, @setup)
18
- end
19
- end
20
- end
21
- end
@@ -1,262 +0,0 @@
1
- module Sunspot
2
- #
3
- # A Sunspot session encapsulates a connection to Solr and a set of
4
- # configuration choices. Though users of Sunspot may manually instantiate
5
- # Session objects, in the general case it's easier to use the singleton
6
- # stored in the Sunspot module. Since the Sunspot module provides all of
7
- # the instance methods of Session as class methods, they are not documented
8
- # again here.
9
- #
10
- class Session
11
- class <<self
12
- attr_writer :connection_class #:nodoc:
13
-
14
- #
15
- # For testing purposes
16
- #
17
- def connection_class #:nodoc:
18
- @connection_class ||= RSolr
19
- end
20
- end
21
-
22
- #
23
- # Sunspot::Configuration object for this session
24
- #
25
- attr_reader :config
26
-
27
- #
28
- # Sessions are initialized with a Sunspot configuration and a Solr
29
- # connection. Usually you will want to stick with the default arguments
30
- # when instantiating your own sessions.
31
- #
32
- def initialize(config = Configuration.build, connection = nil)
33
- @config = config
34
- yield(@config) if block_given?
35
- @connection = connection
36
- @deletes = @adds = 0
37
- end
38
-
39
- #
40
- # See Sunspot.new_search
41
- #
42
- def new_search(*types, &block)
43
- types.flatten!
44
- search = Search::StandardSearch.new(
45
- connection,
46
- setup_for_types(types),
47
- Query::StandardQuery.new(types),
48
- @config
49
- )
50
- search.build(&block) if block
51
- search
52
- end
53
-
54
- #
55
- # See Sunspot.search
56
- #
57
- def search(*types, &block)
58
- search = new_search(*types, &block)
59
- search.execute
60
- end
61
-
62
- #
63
- # See Sunspot.new_more_like_this
64
- #
65
- def new_more_like_this(object, *types, &block)
66
- types[0] ||= object.class
67
- mlt = Search::MoreLikeThisSearch.new(
68
- connection,
69
- setup_for_types(types),
70
- Query::MoreLikeThisQuery.new(object, types),
71
- @config
72
- )
73
- mlt.build(&block) if block
74
- mlt
75
- end
76
-
77
- #
78
- # See Sunspot.more_like_this
79
- #
80
- def more_like_this(object, *types, &block)
81
- mlt = new_more_like_this(object, *types, &block)
82
- mlt.execute
83
- end
84
-
85
- #
86
- # See Sunspot.index
87
- #
88
- def index(*objects)
89
- objects.flatten!
90
- @adds += objects.length
91
- indexer.add(objects)
92
- end
93
-
94
- #
95
- # See Sunspot.index!
96
- #
97
- def index!(*objects)
98
- index(*objects)
99
- commit
100
- end
101
-
102
- #
103
- # See Sunspot.commit
104
- #
105
- def commit
106
- @adds = @deletes = 0
107
- connection.commit
108
- end
109
-
110
- #
111
- # See Sunspot.optimize
112
- #
113
- def optimize
114
- @adds = @deletes = 0
115
- connection.optimize
116
- end
117
-
118
- #
119
- # See Sunspot.remove
120
- #
121
- def remove(*objects, &block)
122
- if block
123
- types = objects
124
- conjunction = Query::Connective::Conjunction.new
125
- if types.length == 1
126
- conjunction.add_positive_restriction(TypeField.instance, Query::Restriction::EqualTo, types.first)
127
- else
128
- conjunction.add_positive_restriction(TypeField.instance, Query::Restriction::AnyOf, types)
129
- end
130
- dsl = DSL::Scope.new(conjunction, setup_for_types(types))
131
- Util.instance_eval_or_call(dsl, &block)
132
- indexer.remove_by_scope(conjunction)
133
- else
134
- objects.flatten!
135
- @deletes += objects.length
136
- objects.each do |object|
137
- indexer.remove(object)
138
- end
139
- end
140
- end
141
-
142
- #
143
- # See Sunspot.remove!
144
- #
145
- def remove!(*objects)
146
- remove(*objects)
147
- commit
148
- end
149
-
150
- #
151
- # See Sunspot.remove_by_id
152
- #
153
- def remove_by_id(clazz, id)
154
- class_name =
155
- if clazz.is_a?(Class)
156
- clazz.name
157
- else
158
- clazz.to_s
159
- end
160
- indexer.remove_by_id(class_name, id)
161
- end
162
-
163
- #
164
- # See Sunspot.remove_by_id!
165
- #
166
- def remove_by_id!(clazz, id)
167
- remove_by_id(clazz, id)
168
- commit
169
- end
170
-
171
- #
172
- # See Sunspot.remove_all
173
- #
174
- def remove_all(*classes)
175
- classes.flatten!
176
- if classes.empty?
177
- @deletes += 1
178
- indexer.remove_all
179
- else
180
- @deletes += classes.length
181
- classes.each { |clazz| indexer.remove_all(clazz) }
182
- end
183
- end
184
-
185
- #
186
- # See Sunspot.remove_all!
187
- #
188
- def remove_all!(*classes)
189
- remove_all(*classes)
190
- commit
191
- end
192
-
193
- #
194
- # See Sunspot.dirty?
195
- #
196
- def dirty?
197
- (@deletes + @adds) > 0
198
- end
199
-
200
- #
201
- # See Sunspot.commit_if_dirty
202
- #
203
- def commit_if_dirty
204
- commit if dirty?
205
- end
206
-
207
- #
208
- # See Sunspot.delete_dirty?
209
- #
210
- def delete_dirty?
211
- @deletes > 0
212
- end
213
-
214
- #
215
- # See Sunspot.commit_if_delete_dirty
216
- #
217
- def commit_if_delete_dirty
218
- commit if delete_dirty?
219
- end
220
-
221
- #
222
- # See Sunspot.batch
223
- #
224
- def batch
225
- indexer.start_batch
226
- yield
227
- indexer.flush_batch
228
- end
229
-
230
- private
231
-
232
- #
233
- # Retrieve the Solr connection for this session, creating one if it does not
234
- # already exist.
235
- #
236
- # ==== Returns
237
- #
238
- # RSolr::Connection::Base:: The connection for this session
239
- #
240
- def connection
241
- @connection ||=
242
- self.class.connection_class.connect(:url => config.solr.url,
243
- :read_timeout => config.solr.read_timeout,
244
- :open_timeout => config.solr.open_timeout)
245
- end
246
-
247
- def indexer
248
- @indexer ||= Indexer.new(connection)
249
- end
250
-
251
- def setup_for_types(types)
252
- if types.empty?
253
- raise(ArgumentError, "You must specify at least one type to search")
254
- end
255
- if types.length == 1
256
- Setup.for(types.first)
257
- else
258
- CompositeSetup.for(types)
259
- end
260
- end
261
- end
262
- end