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,61 +0,0 @@
1
- module Sunspot
2
- module Query
3
- class MoreLikeThis
4
- attr_reader :fields
5
-
6
- def initialize(document)
7
- @document_scope = Restriction::EqualTo.new(
8
- false,
9
- IdField.instance,
10
- Adapters::InstanceAdapter.adapt(document).index_id
11
- )
12
- @fields = {}
13
- @params = {}
14
- end
15
-
16
- def add_field(field, boost = nil)
17
- raise(ArgumentError, "Field #{field.name} is not set up for more_like_this") unless field.more_like_this?
18
- @fields[field.indexed_name] = TextFieldBoost.new(field, boost)
19
- end
20
-
21
- def minimum_term_frequency=(mintf)
22
- @params[:"mlt.mintf"] = mintf
23
- end
24
-
25
- def minimum_document_frequency=(mindf)
26
- @params[:"mlt.mindf"] = mindf
27
- end
28
-
29
- def minimum_word_length=(minwl)
30
- @params[:"mlt.minwl"] = minwl
31
- end
32
-
33
- def maximum_word_length=(maxwl)
34
- @params[:"mlt.maxwl"] = maxwl
35
- end
36
-
37
- def maximum_query_terms=(maxqt)
38
- @params[:"mlt.maxqt"] = maxqt
39
- end
40
-
41
- def boost_by_relevance=(should_boost)
42
- @params[:"mlt.boost"] = should_boost
43
- end
44
-
45
- def to_params
46
- params = Sunspot::Util.deep_merge(
47
- @params,
48
- :q => @document_scope.to_boolean_phrase
49
- )
50
- params[:"mlt.fl"] = @fields.keys.join(",")
51
- boosted_fields = @fields.values.select { |field| field.boost }
52
- unless boosted_fields.empty?
53
- params[:qf] = boosted_fields.map do |field|
54
- field.to_boosted_field
55
- end.join(' ')
56
- end
57
- params
58
- end
59
- end
60
- end
61
- end
@@ -1,12 +0,0 @@
1
- module Sunspot
2
- module Query
3
- class MoreLikeThisQuery < CommonQuery
4
- attr_accessor :scope, :more_like_this
5
-
6
- def initialize(document, types)
7
- super(types)
8
- @components << @more_like_this = MoreLikeThis.new(document)
9
- end
10
- end
11
- end
12
- end
@@ -1,42 +0,0 @@
1
- module Sunspot
2
- module Query
3
- #
4
- # A query component that holds information about pagination. Unlike other
5
- # query components, this one is mutable, because the query itself holds a
6
- # reference to it and updates it if pagination is changed.
7
- #
8
- class Pagination #:nodoc:
9
- attr_reader :page, :per_page, :offset
10
-
11
- def initialize(page = nil, per_page = nil, offset = nil)
12
- self.offset, self.page, self.per_page = offset, page, per_page
13
- end
14
-
15
- def to_params
16
- { :start => start, :rows => rows }
17
- end
18
-
19
- def page=(page)
20
- @page = page.to_i if page
21
- end
22
-
23
- def per_page=(per_page)
24
- @per_page = per_page.to_i if per_page
25
- end
26
-
27
- def offset=(offset)
28
- @offset = offset.to_i
29
- end
30
-
31
- private
32
-
33
- def start
34
- (@page - 1) * @per_page + @offset
35
- end
36
-
37
- def rows
38
- @per_page
39
- end
40
- end
41
- end
42
- end
@@ -1,53 +0,0 @@
1
- module Sunspot
2
- module Query
3
- class QueryFacet < Connective::Conjunction
4
-
5
- def initialize(options = {}, negated = false)
6
- if exclude_filters = options[:exclude]
7
- @exclude_tag = Util.Array(exclude_filters).map do |filter|
8
- filter.tag
9
- end.join(',')
10
- end
11
- super(negated)
12
- end
13
-
14
-
15
- def to_params
16
- if @components.empty?
17
- {}
18
- else
19
- {
20
- :facet => 'true',
21
- :"facet.query" => to_boolean_phrase
22
- }
23
- end
24
- end
25
-
26
- def to_boolean_phrase
27
- "#{to_local_params}#{super}"
28
- end
29
-
30
- private
31
-
32
- def local_params
33
- @local_params ||=
34
- begin
35
- local_params = {}
36
- local_params[:ex] = @exclude_tag if @exclude_tag
37
- local_params
38
- end
39
- end
40
-
41
- def to_local_params
42
- if local_params.empty?
43
- ''
44
- else
45
- pairs = local_params.map do |key, value|
46
- "#{key}=#{value}"
47
- end
48
- "{!#{pairs.join(' ')}}"
49
- end
50
- end
51
- end
52
- end
53
- end
@@ -1,15 +0,0 @@
1
- module Sunspot
2
- module Query
3
- class RangeFacet < AbstractFieldFacet
4
- def to_params
5
- params = super
6
- params[:"facet.range"] = [@field.indexed_name]
7
- params[qualified_param('range.start')] = @field.to_indexed(@options[:range].first)
8
- params[qualified_param('range.end')] = @field.to_indexed(@options[:range].last)
9
- params[qualified_param('range.gap')] = "#{@options[:range_interval] || 10}"
10
- params[qualified_param('range.include')] = @options[:include].to_s if @options[:include]
11
- params
12
- end
13
- end
14
- end
15
- end
@@ -1,308 +0,0 @@
1
- module Sunspot
2
- module Query
3
- module Restriction #:nodoc:
4
- class <<self
5
- #
6
- # Return the names of all of the restriction classes that should be made
7
- # available to the DSL.
8
- #
9
- # ==== Returns
10
- #
11
- # Array:: Collection of restriction class names
12
- #
13
- def names
14
- constants - %w(Base) #XXX this seems ugly
15
- end
16
-
17
- #
18
- # Convenience method to access a restriction class by an underscored
19
- # symbol or string
20
- #
21
- def [](restriction_name)
22
- @types ||= {}
23
- @types[restriction_name.to_sym] ||= const_get(Sunspot::Util.camel_case(restriction_name.to_s))
24
- end
25
- end
26
-
27
- #
28
- # Subclasses of this class represent restrictions that can be applied to
29
- # a Sunspot query. The Sunspot::DSL::Restriction class presents a builder
30
- # API for instances of this class.
31
- #
32
- # Implementations of this class must respond to #to_params and
33
- # #to_negated_params. Instead of implementing those methods, they may
34
- # choose to implement any of:
35
- #
36
- # * #to_positive_boolean_phrase, and optionally #to_negated_boolean_phrase
37
- # * #to_solr_conditional
38
- #
39
- class Base #:nodoc:
40
- include Filter
41
- include RSolr::Char
42
-
43
- RESERVED_WORDS = Set['AND', 'OR', 'NOT']
44
-
45
- def initialize(negated, field, value)
46
- raise ArgumentError.new("RFCTR") unless [true, false].include?(negated)
47
- @negated, @field, @value = negated, field, value
48
- end
49
-
50
- #
51
- # A hash representing this restriction in solr-ruby's parameter format.
52
- # All restriction implementations must respond to this method; however,
53
- # the base implementation delegates to the #to_positive_boolean_phrase method, so
54
- # subclasses may (and probably should) choose to implement that method
55
- # instead.
56
- #
57
- # ==== Returns
58
- #
59
- # Hash:: Representation of this restriction as solr-ruby parameters
60
- #
61
- def to_params
62
- { :fq => [to_filter_query] }
63
- end
64
-
65
- #
66
- # Return the boolean phrase associated with this restriction object.
67
- # Differentiates between positive and negated boolean phrases depending
68
- # on whether this restriction is negated.
69
- #
70
- def to_boolean_phrase
71
- unless negated?
72
- to_positive_boolean_phrase
73
- else
74
- to_negated_boolean_phrase
75
- end
76
- end
77
-
78
- #
79
- # Boolean phrase representing this restriction in the positive. Subclasses
80
- # may choose to implement this method rather than #to_params; however,
81
- # this method delegates to the abstract #to_solr_conditional method, which
82
- # in most cases will be what subclasses will want to implement.
83
- # #to_solr_conditional contains the boolean phrase representing the
84
- # condition but leaves out the field name (see built-in implementations
85
- # for examples)
86
- #
87
- # ==== Returns
88
- #
89
- # String:: Boolean phrase for restriction in the positive
90
- #
91
- def to_positive_boolean_phrase
92
- "#{escape(@field.indexed_name)}:#{to_solr_conditional}"
93
- end
94
-
95
- #
96
- # Boolean phrase representing this restriction in the negated. Subclasses
97
- # may choose to implement this method, but it is not necessary, as the
98
- # base implementation delegates to #to_positive_boolean_phrase.
99
- #
100
- # ==== Returns
101
- #
102
- # String:: Boolean phrase for restriction in the negated
103
- #
104
- def to_negated_boolean_phrase
105
- "-#{to_positive_boolean_phrase}"
106
- end
107
-
108
- #
109
- # Whether this restriction should be negated from its original meaning
110
- #
111
- def negated? #:nodoc:
112
- !!@negated
113
- end
114
-
115
- #
116
- # Return a new restriction that is the negated version of this one. It
117
- # is used by disjunction denormalization.
118
- #
119
- def negate
120
- self.class.new(!@negated, @field, @value)
121
- end
122
-
123
- protected
124
-
125
- #
126
- # Return escaped Solr API representation of given value
127
- #
128
- # ==== Parameters
129
- #
130
- # value<Object>::
131
- # value to convert to Solr representation (default: @value)
132
- #
133
- # ==== Returns
134
- #
135
- # String:: Solr API representation of given value
136
- #
137
- def solr_value(value = @value)
138
- solr_value = escape(@field.to_indexed(value))
139
- if RESERVED_WORDS.include?(solr_value)
140
- %Q("#{solr_value}")
141
- else
142
- solr_value
143
- end
144
- end
145
- end
146
-
147
- class InRadius < Base
148
- def initialize(negated, field, lat, lon, radius)
149
- @lat, @lon, @radius = lat, lon, radius
150
- super negated, field, [lat, lon, radius]
151
- end
152
-
153
- private
154
- def to_positive_boolean_phrase
155
- "_query_:\"{!geofilt sfield=#{@field.indexed_name} pt=#{@lat},#{@lon} d=#{@radius}}\""
156
- end
157
- end
158
-
159
- #
160
- # Results must have field with value equal to given value. If the value
161
- # is nil, results must have no value for the given field.
162
- #
163
- class EqualTo < Base
164
- def to_positive_boolean_phrase
165
- unless @value.nil?
166
- super
167
- else
168
- "#{escape(@field.indexed_name)}:[* TO *]"
169
- end
170
- end
171
-
172
- def negated?
173
- if @value.nil?
174
- !super
175
- else
176
- super
177
- end
178
- end
179
-
180
- private
181
-
182
- def to_solr_conditional
183
- "#{solr_value}"
184
- end
185
- end
186
-
187
- #
188
- # Results must have field with value less than given value
189
- #
190
- class LessThan < Base
191
- private
192
-
193
- def solr_value(value = @value)
194
- solr_value = super
195
- solr_value = "\"#{solr_value}\"" if solr_value.index(' ')
196
- solr_value
197
- end
198
-
199
- def to_solr_conditional
200
- "{* TO #{solr_value}}"
201
- end
202
- end
203
-
204
- #
205
- # Results must have field with value less or equal to than given value
206
- #
207
- class LessThanOrEqualTo < Base
208
- private
209
-
210
- def solr_value(value = @value)
211
- solr_value = super
212
- solr_value = "\"#{solr_value}\"" if solr_value.index(' ')
213
- solr_value
214
- end
215
-
216
- def to_solr_conditional
217
- "[* TO #{solr_value}]"
218
- end
219
- end
220
-
221
- #
222
- # Results must have field with value greater than given value
223
- #
224
- class GreaterThan < Base
225
- private
226
-
227
- def solr_value(value = @value)
228
- solr_value = super
229
- solr_value = "\"#{solr_value}\"" if solr_value.index(' ')
230
- solr_value
231
- end
232
-
233
- def to_solr_conditional
234
- "{#{solr_value} TO *}"
235
- end
236
- end
237
-
238
- #
239
- # Results must have field with value greater than or equal to given value
240
- #
241
- class GreaterThanOrEqualTo < Base
242
- private
243
-
244
- def solr_value(value = @value)
245
- solr_value = super
246
- solr_value = "\"#{solr_value}\"" if solr_value.index(' ')
247
- solr_value
248
- end
249
-
250
- def to_solr_conditional
251
- "[#{solr_value} TO *]"
252
- end
253
- end
254
-
255
- #
256
- # Results must have field with value in given range
257
- #
258
- class Between < Base
259
- private
260
-
261
- def solr_value(value = @value)
262
- solr_value = super
263
- solr_value = "\"#{solr_value}\"" if solr_value.index(' ')
264
- solr_value
265
- end
266
-
267
- def to_solr_conditional
268
- "[#{solr_value(@value.first)} TO #{solr_value(@value.last)}]"
269
- end
270
- end
271
-
272
- #
273
- # Results must have field with value included in given collection
274
- #
275
- class AnyOf < Base
276
- private
277
-
278
- def to_solr_conditional
279
- "(#{@value.map { |v| solr_value v } * ' OR '})"
280
- end
281
- end
282
-
283
- #
284
- # Results must have field with values matching all values in given
285
- # collection (only makes sense for fields with multiple values)
286
- #
287
- class AllOf < Base
288
- private
289
-
290
- def to_solr_conditional
291
- "(#{@value.map { |v| solr_value v } * ' AND '})"
292
- end
293
- end
294
-
295
- #
296
- # Results must have a field with a value that begins with the argument.
297
- # Most useful for strings, but in theory will work with anything.
298
- #
299
- class StartingWith < Base
300
- private
301
-
302
- def to_solr_conditional
303
- "#{solr_value(@value)}*"
304
- end
305
- end
306
- end
307
- end
308
- end