lisausa-sunspot 1.2.1

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 (217) hide show
  1. data/.gitignore +12 -0
  2. data/Gemfile +4 -0
  3. data/History.txt +222 -0
  4. data/LICENSE +18 -0
  5. data/Rakefile +17 -0
  6. data/TODO +13 -0
  7. data/VERSION.yml +4 -0
  8. data/bin/sunspot-installer +19 -0
  9. data/bin/sunspot-solr +74 -0
  10. data/installer/config/schema.yml +95 -0
  11. data/lib/light_config.rb +40 -0
  12. data/lib/sunspot.rb +569 -0
  13. data/lib/sunspot/adapters.rb +265 -0
  14. data/lib/sunspot/composite_setup.rb +202 -0
  15. data/lib/sunspot/configuration.rb +46 -0
  16. data/lib/sunspot/data_extractor.rb +50 -0
  17. data/lib/sunspot/dsl.rb +5 -0
  18. data/lib/sunspot/dsl/adjustable.rb +47 -0
  19. data/lib/sunspot/dsl/field_query.rb +279 -0
  20. data/lib/sunspot/dsl/fields.rb +103 -0
  21. data/lib/sunspot/dsl/fulltext.rb +243 -0
  22. data/lib/sunspot/dsl/function.rb +14 -0
  23. data/lib/sunspot/dsl/functional.rb +44 -0
  24. data/lib/sunspot/dsl/more_like_this_query.rb +56 -0
  25. data/lib/sunspot/dsl/paginatable.rb +28 -0
  26. data/lib/sunspot/dsl/query_facet.rb +36 -0
  27. data/lib/sunspot/dsl/restriction.rb +25 -0
  28. data/lib/sunspot/dsl/restriction_with_near.rb +121 -0
  29. data/lib/sunspot/dsl/scope.rb +217 -0
  30. data/lib/sunspot/dsl/search.rb +30 -0
  31. data/lib/sunspot/dsl/standard_query.rb +121 -0
  32. data/lib/sunspot/field.rb +193 -0
  33. data/lib/sunspot/field_factory.rb +129 -0
  34. data/lib/sunspot/indexer.rb +131 -0
  35. data/lib/sunspot/installer.rb +31 -0
  36. data/lib/sunspot/installer/library_installer.rb +45 -0
  37. data/lib/sunspot/installer/schema_builder.rb +219 -0
  38. data/lib/sunspot/installer/solrconfig_updater.rb +76 -0
  39. data/lib/sunspot/installer/task_helper.rb +18 -0
  40. data/lib/sunspot/query.rb +11 -0
  41. data/lib/sunspot/query/abstract_field_facet.rb +52 -0
  42. data/lib/sunspot/query/boost_query.rb +24 -0
  43. data/lib/sunspot/query/common_query.rb +85 -0
  44. data/lib/sunspot/query/composite_fulltext.rb +36 -0
  45. data/lib/sunspot/query/connective.rb +206 -0
  46. data/lib/sunspot/query/date_field_facet.rb +14 -0
  47. data/lib/sunspot/query/dismax.rb +128 -0
  48. data/lib/sunspot/query/field_facet.rb +41 -0
  49. data/lib/sunspot/query/filter.rb +38 -0
  50. data/lib/sunspot/query/function_query.rb +52 -0
  51. data/lib/sunspot/query/geo.rb +53 -0
  52. data/lib/sunspot/query/highlighting.rb +67 -0
  53. data/lib/sunspot/query/more_like_this.rb +61 -0
  54. data/lib/sunspot/query/more_like_this_query.rb +12 -0
  55. data/lib/sunspot/query/pagination.rb +38 -0
  56. data/lib/sunspot/query/query_facet.rb +16 -0
  57. data/lib/sunspot/query/restriction.rb +262 -0
  58. data/lib/sunspot/query/scope.rb +9 -0
  59. data/lib/sunspot/query/sort.rb +95 -0
  60. data/lib/sunspot/query/sort_composite.rb +33 -0
  61. data/lib/sunspot/query/standard_query.rb +16 -0
  62. data/lib/sunspot/query/text_field_boost.rb +17 -0
  63. data/lib/sunspot/schema.rb +151 -0
  64. data/lib/sunspot/search.rb +9 -0
  65. data/lib/sunspot/search/abstract_search.rb +293 -0
  66. data/lib/sunspot/search/date_facet.rb +35 -0
  67. data/lib/sunspot/search/facet_row.rb +27 -0
  68. data/lib/sunspot/search/field_facet.rb +88 -0
  69. data/lib/sunspot/search/highlight.rb +38 -0
  70. data/lib/sunspot/search/hit.rb +136 -0
  71. data/lib/sunspot/search/more_like_this_search.rb +31 -0
  72. data/lib/sunspot/search/paginated_collection.rb +55 -0
  73. data/lib/sunspot/search/query_facet.rb +67 -0
  74. data/lib/sunspot/search/standard_search.rb +21 -0
  75. data/lib/sunspot/server.rb +152 -0
  76. data/lib/sunspot/session.rb +260 -0
  77. data/lib/sunspot/session_proxy.rb +87 -0
  78. data/lib/sunspot/session_proxy/abstract_session_proxy.rb +29 -0
  79. data/lib/sunspot/session_proxy/class_sharding_session_proxy.rb +66 -0
  80. data/lib/sunspot/session_proxy/id_sharding_session_proxy.rb +89 -0
  81. data/lib/sunspot/session_proxy/master_slave_session_proxy.rb +43 -0
  82. data/lib/sunspot/session_proxy/sharding_session_proxy.rb +222 -0
  83. data/lib/sunspot/session_proxy/silent_fail_session_proxy.rb +42 -0
  84. data/lib/sunspot/session_proxy/thread_local_session_proxy.rb +37 -0
  85. data/lib/sunspot/setup.rb +350 -0
  86. data/lib/sunspot/text_field_setup.rb +29 -0
  87. data/lib/sunspot/type.rb +372 -0
  88. data/lib/sunspot/util.rb +243 -0
  89. data/lib/sunspot/version.rb +3 -0
  90. data/script/console +10 -0
  91. data/solr-1.3/etc/jetty.xml +212 -0
  92. data/solr-1.3/etc/webdefault.xml +379 -0
  93. data/solr-1.3/lib/jetty-6.1.3.jar +0 -0
  94. data/solr-1.3/lib/jetty-util-6.1.3.jar +0 -0
  95. data/solr-1.3/lib/jsp-2.1/ant-1.6.5.jar +0 -0
  96. data/solr-1.3/lib/jsp-2.1/core-3.1.1.jar +0 -0
  97. data/solr-1.3/lib/jsp-2.1/jsp-2.1.jar +0 -0
  98. data/solr-1.3/lib/jsp-2.1/jsp-api-2.1.jar +0 -0
  99. data/solr-1.3/lib/servlet-api-2.5-6.1.3.jar +0 -0
  100. data/solr-1.3/solr/conf/elevate.xml +36 -0
  101. data/solr-1.3/solr/conf/protwords.txt +21 -0
  102. data/solr-1.3/solr/conf/schema.xml +64 -0
  103. data/solr-1.3/solr/conf/solrconfig.xml +725 -0
  104. data/solr-1.3/solr/conf/stopwords.txt +57 -0
  105. data/solr-1.3/solr/conf/synonyms.txt +31 -0
  106. data/solr-1.3/solr/lib/geoapi-nogenerics-2.1-M2.jar +0 -0
  107. data/solr-1.3/solr/lib/gt2-referencing-2.3.1.jar +0 -0
  108. data/solr-1.3/solr/lib/jsr108-0.01.jar +0 -0
  109. data/solr-1.3/solr/lib/locallucene.jar +0 -0
  110. data/solr-1.3/solr/lib/localsolr.jar +0 -0
  111. data/solr-1.3/start.jar +0 -0
  112. data/solr-1.3/webapps/solr.war +0 -0
  113. data/solr/README.txt +42 -0
  114. data/solr/etc/jetty.xml +218 -0
  115. data/solr/etc/webdefault.xml +379 -0
  116. data/solr/lib/jetty-6.1.3.jar +0 -0
  117. data/solr/lib/jetty-util-6.1.3.jar +0 -0
  118. data/solr/lib/jsp-2.1/ant-1.6.5.jar +0 -0
  119. data/solr/lib/jsp-2.1/core-3.1.1.jar +0 -0
  120. data/solr/lib/jsp-2.1/jsp-2.1.jar +0 -0
  121. data/solr/lib/jsp-2.1/jsp-api-2.1.jar +0 -0
  122. data/solr/lib/servlet-api-2.5-6.1.3.jar +0 -0
  123. data/solr/solr/.gitignore +1 -0
  124. data/solr/solr/README.txt +54 -0
  125. data/solr/solr/conf/admin-extra.html +31 -0
  126. data/solr/solr/conf/elevate.xml +36 -0
  127. data/solr/solr/conf/mapping-ISOLatin1Accent.txt +246 -0
  128. data/solr/solr/conf/protwords.txt +21 -0
  129. data/solr/solr/conf/schema.xml +238 -0
  130. data/solr/solr/conf/scripts.conf +24 -0
  131. data/solr/solr/conf/solrconfig.xml +934 -0
  132. data/solr/solr/conf/spellings.txt +2 -0
  133. data/solr/solr/conf/stopwords.txt +58 -0
  134. data/solr/solr/conf/synonyms.txt +31 -0
  135. data/solr/solr/conf/xslt/example.xsl +132 -0
  136. data/solr/solr/conf/xslt/example_atom.xsl +67 -0
  137. data/solr/solr/conf/xslt/example_rss.xsl +66 -0
  138. data/solr/solr/conf/xslt/luke.xsl +337 -0
  139. data/solr/start.jar +0 -0
  140. data/solr/webapps/solr.war +0 -0
  141. data/spec/api/adapters_spec.rb +33 -0
  142. data/spec/api/binding_spec.rb +50 -0
  143. data/spec/api/indexer/attributes_spec.rb +149 -0
  144. data/spec/api/indexer/batch_spec.rb +46 -0
  145. data/spec/api/indexer/dynamic_fields_spec.rb +42 -0
  146. data/spec/api/indexer/fixed_fields_spec.rb +57 -0
  147. data/spec/api/indexer/fulltext_spec.rb +43 -0
  148. data/spec/api/indexer/removal_spec.rb +53 -0
  149. data/spec/api/indexer/spec_helper.rb +1 -0
  150. data/spec/api/indexer_spec.rb +14 -0
  151. data/spec/api/query/advanced_manipulation_examples.rb +35 -0
  152. data/spec/api/query/connectives_examples.rb +189 -0
  153. data/spec/api/query/dsl_spec.rb +18 -0
  154. data/spec/api/query/dynamic_fields_examples.rb +165 -0
  155. data/spec/api/query/faceting_examples.rb +397 -0
  156. data/spec/api/query/fulltext_examples.rb +313 -0
  157. data/spec/api/query/function_spec.rb +70 -0
  158. data/spec/api/query/geo_examples.rb +68 -0
  159. data/spec/api/query/highlighting_examples.rb +223 -0
  160. data/spec/api/query/more_like_this_spec.rb +140 -0
  161. data/spec/api/query/ordering_pagination_examples.rb +95 -0
  162. data/spec/api/query/scope_examples.rb +275 -0
  163. data/spec/api/query/spec_helper.rb +1 -0
  164. data/spec/api/query/standard_spec.rb +28 -0
  165. data/spec/api/query/text_field_scoping_examples.rb +30 -0
  166. data/spec/api/query/types_spec.rb +20 -0
  167. data/spec/api/search/dynamic_fields_spec.rb +33 -0
  168. data/spec/api/search/faceting_spec.rb +360 -0
  169. data/spec/api/search/highlighting_spec.rb +69 -0
  170. data/spec/api/search/hits_spec.rb +120 -0
  171. data/spec/api/search/paginated_collection_spec.rb +26 -0
  172. data/spec/api/search/results_spec.rb +66 -0
  173. data/spec/api/search/search_spec.rb +23 -0
  174. data/spec/api/search/spec_helper.rb +1 -0
  175. data/spec/api/server_spec.rb +91 -0
  176. data/spec/api/session_proxy/class_sharding_session_proxy_spec.rb +85 -0
  177. data/spec/api/session_proxy/id_sharding_session_proxy_spec.rb +30 -0
  178. data/spec/api/session_proxy/master_slave_session_proxy_spec.rb +41 -0
  179. data/spec/api/session_proxy/sharding_session_proxy_spec.rb +77 -0
  180. data/spec/api/session_proxy/silent_fail_session_proxy_spec.rb +24 -0
  181. data/spec/api/session_proxy/spec_helper.rb +9 -0
  182. data/spec/api/session_proxy/thread_local_session_proxy_spec.rb +50 -0
  183. data/spec/api/session_spec.rb +220 -0
  184. data/spec/api/spec_helper.rb +3 -0
  185. data/spec/api/sunspot_spec.rb +18 -0
  186. data/spec/ext.rb +11 -0
  187. data/spec/helpers/indexer_helper.rb +29 -0
  188. data/spec/helpers/query_helper.rb +38 -0
  189. data/spec/helpers/search_helper.rb +80 -0
  190. data/spec/integration/dynamic_fields_spec.rb +55 -0
  191. data/spec/integration/faceting_spec.rb +238 -0
  192. data/spec/integration/highlighting_spec.rb +22 -0
  193. data/spec/integration/indexing_spec.rb +33 -0
  194. data/spec/integration/keyword_search_spec.rb +317 -0
  195. data/spec/integration/local_search_spec.rb +64 -0
  196. data/spec/integration/more_like_this_spec.rb +43 -0
  197. data/spec/integration/scoped_search_spec.rb +354 -0
  198. data/spec/integration/spec_helper.rb +7 -0
  199. data/spec/integration/stored_fields_spec.rb +10 -0
  200. data/spec/integration/test_pagination.rb +32 -0
  201. data/spec/mocks/adapters.rb +32 -0
  202. data/spec/mocks/blog.rb +3 -0
  203. data/spec/mocks/comment.rb +21 -0
  204. data/spec/mocks/connection.rb +126 -0
  205. data/spec/mocks/mock_adapter.rb +30 -0
  206. data/spec/mocks/mock_class_sharding_session_proxy.rb +24 -0
  207. data/spec/mocks/mock_record.rb +52 -0
  208. data/spec/mocks/mock_sharding_session_proxy.rb +15 -0
  209. data/spec/mocks/photo.rb +11 -0
  210. data/spec/mocks/post.rb +85 -0
  211. data/spec/mocks/super_class.rb +2 -0
  212. data/spec/mocks/user.rb +13 -0
  213. data/spec/spec_helper.rb +30 -0
  214. data/tasks/rdoc.rake +27 -0
  215. data/tasks/schema.rake +19 -0
  216. data/tasks/todo.rake +4 -0
  217. metadata +457 -0
data/.gitignore ADDED
@@ -0,0 +1,12 @@
1
+ sunspot-solr.pid
2
+ *.swp
3
+ coverage
4
+ pkg
5
+ /doc
6
+ .DS_Store
7
+
8
+ .yardoc
9
+ sunspot.gemspec
10
+ README.rdoc
11
+ .bundle
12
+ Gemfile.lock
data/Gemfile ADDED
@@ -0,0 +1,4 @@
1
+ source "http://rubygems.org"
2
+
3
+ # Specify your gem's dependencies in carrierwave_backgrounder.gemspec
4
+ gemspec
data/History.txt ADDED
@@ -0,0 +1,222 @@
1
+ == 1.2.0 2010-12-28
2
+ * Replace solr-spatial-light with client-side geohash-based spatial search
3
+ * Override Solr field naming conventions using :as option
4
+ * Delegate #id method directly to calling context inside DSL
5
+ * Create a SilentFailSessionProxy that rescues exceptions on write operations.
6
+ * Inclusion by identity
7
+ * Solr optimize command
8
+ * Ignore negative :limit option for query facets
9
+ * Eliminated value sorting for range scopes
10
+ * Correctly cast stored boolean values if they are booleans
11
+ * Correctly cast and return stored values for multi-valued fields
12
+
13
+ == 1.1.0 2010-04-01
14
+ * MoreLikeThis support
15
+ * Allow multiple fulltext queries in one search
16
+ * Function queries
17
+ * Update solr-spatial-light to 0.0.6 build
18
+ * Support for :prefix when faceting.
19
+ * Allow specification of solr jar
20
+ * Updated reindex task to allow setting of batch size and list of models to index
21
+ * Use a '*:*' query for deleting the entire index
22
+ * Ability to specify custom request handler for queries
23
+ * Gracefully handle nonexistent search result
24
+
25
+ == 1.0.4 2010-03-19
26
+ * Update solr-spatial-light to 0.0.5
27
+ * Fix NullPointerException in repeated geo search
28
+ * Fix missing distances in repeated geo search
29
+ * Don't query the data store more than once when results are missing
30
+
31
+ == 1.0.2 2010-03-11
32
+ * Restore Hit#distance for result geo distance
33
+ * Remove :distance special sort
34
+ * Quote reserved keywords in boolean queries
35
+ * Add Search#facets accessor to retrieve all facets
36
+
37
+ == 1.0.1 2010-03-05
38
+ * Copy all needed config files when sunspot-installer run with force option
39
+
40
+ == 1.0.0 2010-03-03
41
+ * Multiselect Field Faceting
42
+ * Named field facets
43
+ * Upgrade to Solr 1.4
44
+ * Deletion by query
45
+ * Allow :latitude and :longitude as coordinate method names
46
+ * Assumed inconsistency
47
+ * Support for TrieField numeric/time types
48
+ * Built-in Session Proxies: Thread-local, master/slave, sharding
49
+ * Give DSL blocks access to calling context
50
+ * Create sunspot-installer executable, which modifies an existing
51
+ schema/solrconfig to work with Sunspot
52
+ * Support for Long and Double types
53
+ * new_search method accepts DSL block
54
+ * Sunspot::Server now a real class that manages embedded Sunspot instance
55
+ * Add Search#each_hit_with_result method
56
+ * Able to access stored dynamic fields
57
+ * Access dynamic facets using the #facet method
58
+ * Remove accidental existence of dynamic_text fields
59
+ * Upgrade to RSolr 0.12.1
60
+ * Switch from LocalSolr to solr-spatial-light
61
+ * Turn off request logging in Jetty for default Solr install
62
+ * Full support for class-reloading of Sunspot-setup classes
63
+ * Support time ranges outside of 32-bit range
64
+ * Remove sunspot-configure-solr executable
65
+ * new_search method accepts DSL block
66
+
67
+ == 0.10.8 2009-11-24
68
+ * Strictly enforce RSolr 0.9.6 gem dependency (newer ones broken)
69
+
70
+ == 0.10.7 2009-11-16
71
+ * Ignore boost_fields that don't apply
72
+ * Ability to specify text_fields inside connectives
73
+ * Fix bug with newlines in strings incorrectly being considered multi-value
74
+ * Compatibility with RSolr 0.10.1
75
+ * Remove commented-out code entirely
76
+
77
+ == 0.10.6 2009-11-05
78
+ * Support more dismax parameters
79
+ * Support multiple boost queries
80
+ * Allow "extra" facet rows
81
+ * Allow exclusion of fulltext fields
82
+ * Allow specification of per-field highlighting params
83
+ * Specify coordinates using block extraction
84
+ * Return empty array if no highlights available
85
+ * Get stored text fields from hits
86
+ * Update docs to reflect a requirement of at least one search type
87
+ * added --max-memory and --min-memory parameters to sunspot-solr
88
+ * LocalLucene and LocalSolr compatible with Java 1.5
89
+
90
+ == 0.10.5 2009-10-22
91
+ * Fix highlighting for multiple-model search
92
+
93
+ == 0.10.4 2009-10-20
94
+ * Add adjust_params method, allowing experts to manually edit Solr params
95
+ * Track adds and deletes separately in session, and expose delete_dirty? method
96
+ * Allow clients to inject a singleton session proxy
97
+
98
+ == 0.10.3 2009-10-15
99
+ * Contiguous, not continuous
100
+ * Fail fast if less-than-1 radius passed for local search
101
+
102
+ == 0.10.2 2009-10-09
103
+ * Add Sunspot.config.xml_builder option, which is passed to RSolr
104
+
105
+ == 0.10.1 2009-10-08
106
+ * Fix directory bugs in sunspot-solr executable
107
+
108
+ == 0.10.0 2009-10-08
109
+ * Support for geographical search using LocalSolr
110
+ * Support for keyword highlighting, with custom deferred formatting
111
+ * New fulltext DSL for specifying advanced dismax options
112
+ * Support boost queries
113
+ * Support for search-time field boost
114
+ * Support for phrase fields
115
+ * Support for prefix queries
116
+ * Set default search-time field boost in setup
117
+ * Restrict field facet to a set of desired values
118
+ * Query facets support all facet options
119
+ * Allow scoping by text fields
120
+ * Support executing searches repeatedly
121
+ * Allow setting of Solr URL for integration tests in environment variable
122
+ * Add support for master/slave configurations
123
+ * Added logging options to sunspot-solr executable
124
+ * Added default solr config file location to Sunspot::Configuration
125
+ * Informative, non-firehose Search#inspect
126
+ * No longer require arguments to #paginate
127
+ * Silently ignore keyword calls with nil/blank/whitespace keywords
128
+ * Don't require that all searched types have a referenced field
129
+ * Correct backwards ranges
130
+ * Raise descriptive error if no types passed to search
131
+ * Handle empty query facets, query facet rows, and connectives
132
+ * Quote values in range restrictions if they contain spaces
133
+ * Fix bug in Sunspot::Util.full_const_get
134
+ * Remove support for :other option in time faceting
135
+ * Remove order_by_random() method
136
+ * Removed options and Query from public API
137
+ * Use built-in optparse instead of optiflag in bin/sunspot-solr
138
+ * Remove dependency on haml and use erb since it is only used to generate one file
139
+
140
+ == 0.9.0 2009-07-21
141
+ * Use Dismax parser for keyword search
142
+ * Field and document boosting
143
+ * Specify which fields to search in keyword search
144
+ * Allow indexing of multiple values in text fields
145
+ * Access keyword relevance score in Hit objects
146
+ * Allow stored fields, retrieve stored values from Hit objects
147
+ * Support more values in shorthand restrictions
148
+ * Disjunctions and conjunctions
149
+ * Random ordering
150
+ * Control all options for field facets
151
+ * Time range facets
152
+ * Get referenced objects from facets on foreign keys
153
+ * Facet by class
154
+ * Batch indexing
155
+ * New Date field type
156
+ * Direct access to data accessors
157
+ * Executable to configure production Solr instances
158
+ * Replace solr-ruby with RSolr
159
+ * Remove accidental ActiveSupport dependency
160
+
161
+ == 0.8.9 2009-06-23
162
+ * Fix OrderedHash bug in older versions of ActiveSupport
163
+
164
+ == 0.8.8 2009-06-15
165
+ * Escape type names to support namespaced classes
166
+ * Fix bug with anonymous modules in Ruby 1.9
167
+
168
+ == 0.8.7 2009-06-10
169
+ * Add --pid-dir option for sunspot-solr executable
170
+
171
+ == 0.8.5 2009-06-09
172
+ * Added dependencies for sunspot-solr executable to gem dependencies
173
+ * Search for adapters using class ancestors rather than superclasses
174
+
175
+ == 0.8.3 2009-06-03
176
+ * Index objects passed as a collection in a single HTTP request
177
+
178
+ == 0.8.2 2009-05-27
179
+ * Allow specification of Solr home when using sunspot-solr
180
+
181
+ == 0.8.1 2009-05-26
182
+ * Add Search#execute! to public API
183
+
184
+ == 0.8.0 2009-05-22
185
+ * Access query API directly; instantiate search without running it
186
+ * Dynamic fields
187
+ * Search blocks can be evaluated in calling context
188
+
189
+ == 0.7.3 2009-05-06
190
+ * Better exception handling when class doesn't have adapter/setup
191
+
192
+ == 0.7.2 2009-04-29
193
+ * Dirty sessions
194
+
195
+ == 0.7.1 2009-04-29
196
+ * Removed extlib dependency from gemspec
197
+
198
+ == 0.7.0 2009-04-28
199
+ * Less magic in the DSL
200
+ * Restrict by empty values
201
+ * Negative scoping using without() method
202
+ * Exclusion by object identity using without(instance)
203
+ * Support for faceting
204
+ * Explicit commits
205
+ * Boolean field type
206
+ * Attribute field flexibility
207
+ * Virtual field blocks can be evaluated in calling context
208
+ * Order available by multiple fields
209
+ * New adapter API
210
+ * Got rid of builder API
211
+ * Full documentation
212
+
213
+ == 0.0.2 2009-02-14
214
+ * Run sunspot's built-in Solr instance using
215
+ sunspot-solr executable
216
+ * Search hash interpretation delegated to
217
+ Builder object
218
+
219
+ == 0.0.1 2008-12-11
220
+ * Initial release
221
+ * Define indexing for any class using DSL
222
+ * Search indexed classes using DSL
data/LICENSE ADDED
@@ -0,0 +1,18 @@
1
+ Permission is hereby granted, free of charge, to any person obtaining
2
+ a copy of this software and associated documentation files (the
3
+ 'Software'), to deal in the Software without restriction, including
4
+ without limitation the rights to use, copy, modify, merge, publish,
5
+ distribute, sublicense, and/or sell copies of the Software, and to
6
+ permit persons to whom the Software is furnished to do so, subject to
7
+ the following conditions:
8
+
9
+ The above copyright notice and this permission notice shall be
10
+ included in all copies or substantial portions of the Software.
11
+
12
+ THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND,
13
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
14
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
15
+ IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
16
+ CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
17
+ TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
18
+ SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
data/Rakefile ADDED
@@ -0,0 +1,17 @@
1
+ ENV['RUBYOPT'] = '-W1'
2
+
3
+ # encoding: UTF-8
4
+ require 'bundler'
5
+ Bundler::GemHelper.install_tasks
6
+
7
+ require 'spec/rake/spectask'
8
+
9
+ Dir['tasks/**/*.rake'].each { |t| load t }
10
+
11
+ desc "Run all examples"
12
+ Spec::Rake::SpecTask.new(:spec) do |t|
13
+ t.spec_files = Dir.glob('spec/**/*_spec.rb')
14
+ t.spec_opts << '--format specdoc'
15
+ end
16
+
17
+ task :default => 'spec'
data/TODO ADDED
@@ -0,0 +1,13 @@
1
+ === Sunspot 1.1.x ===
2
+ * commitWithin (needs support from RSolr, currently available in master)
3
+ * commit options (non-blocking, etc.)
4
+
5
+ === Someday ===
6
+ * Shorthand arguments to Sunspot#search
7
+ * Rudimentary fulltext prefixing support
8
+
9
+ === Solr 1.5 ===
10
+ * Field Collapsing (SOLR-236)
11
+ * Support for official spatial support (SOLR-773)
12
+ * Support sorting by function
13
+ * Support string constants in functions
data/VERSION.yml ADDED
@@ -0,0 +1,4 @@
1
+ ---
2
+ :minor: 10
3
+ :patch: 8
4
+ :major: 0
@@ -0,0 +1,19 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require 'optparse'
4
+ require File.join(File.dirname(__FILE__), '..', 'lib', 'sunspot', 'installer')
5
+
6
+ home = ARGV.select { |arg| arg !~ /^-/ }.last || Dir.pwd
7
+ options = {}
8
+
9
+ OptionParser.new do |opts|
10
+ opts.banner = "Usage: sunspot-install [options] [solr-home]"
11
+ opts.on('-v', '--[no-]verbose', 'Run verbosely') do |v|
12
+ options[:verbose] = v
13
+ end
14
+ opts.on('-f', '--[no-]force', 'Overwrite schema and solrconfig files with Sunspot default, instead of modifying them (recommended for new Solr installation)') do |f|
15
+ options[:force] = f
16
+ end
17
+ end.parse!
18
+
19
+ Sunspot::Installer.execute(home, options)
data/bin/sunspot-solr ADDED
@@ -0,0 +1,74 @@
1
+ #!/usr/bin/env ruby
2
+ begin
3
+ require 'fileutils'
4
+ require 'tempfile'
5
+ require 'tmpdir'
6
+ require 'optparse'
7
+ require File.join(File.dirname(__FILE__), '..', 'lib', 'sunspot', 'server')
8
+ rescue LoadError => e
9
+ if require 'rubygems'
10
+ retry
11
+ else
12
+ raise(e)
13
+ end
14
+ end
15
+
16
+ server = Sunspot::Server.new
17
+
18
+ OptionParser.new do |opts|
19
+ opts.banner = "Usage: sunspot-solr start [options]"
20
+
21
+ opts.on '-p', '--port=PORT', 'Port on which to run Solr (default 8983)' do |p|
22
+ server.port = p
23
+ end
24
+
25
+ opts.on '-d', '--data-directory=DIRECTORY', 'Solr data directory' do |d|
26
+ server.solr_data_dir = File.expand_path(d)
27
+ end
28
+
29
+ opts.on '-s', '--solr-home=HOME', 'Solr home directory (should contain conf/ directory)' do |s|
30
+ server.solr_home = File.expand_path(s)
31
+ end
32
+
33
+ opts.on '-j', '--solr-jar=JAR', 'Solr start jar' do |j|
34
+ server.solr_jar = File.expand_path(j)
35
+ end
36
+
37
+ opts.on '--pid-dir=PID_DIR', 'Directory for pid files' do |pd|
38
+ server.pid_dir = File.expand_path(pd)
39
+ end
40
+
41
+ opts.on '-l', '--log-level=LOG_LEVEL', 'Solr logging level' do |l|
42
+ server.log_level = l
43
+ end
44
+
45
+ opts.on '--log-file=LOG_FILE', 'Path to Solr log file' do |lf|
46
+ server.log_file = File.expand_path(lf)
47
+ end
48
+
49
+ opts.on '--max-memory=MEMORY', 'Specify the maximum size of the memory allocation pool' do |mm|
50
+ server.max_memory = mm
51
+ end
52
+
53
+ opts.on '--min-memory=MEMORY', 'Specify the initial size of the memory allocation pool' do |mm|
54
+ server.min_memory = mm
55
+ end
56
+ end.parse!
57
+
58
+ begin
59
+ case ARGV[0]
60
+ when 'start'
61
+ server.start
62
+ when 'run'
63
+ server.run
64
+ when 'stop'
65
+ server.stop
66
+ when 'restart'
67
+ server.stop
68
+ server.start
69
+ else
70
+ abort("Usage: sunspot-solr (start|stop|run)")
71
+ end
72
+ rescue Sunspot::Server::ServerError => e
73
+ abort(e.message)
74
+ end
@@ -0,0 +1,95 @@
1
+ types: !omap
2
+ - text:
3
+ class: TextField
4
+ suffix: text
5
+ omit_norms: false
6
+ tokenizer: StandardTokenizerFactory
7
+ filters:
8
+ - StandardFilterFactory
9
+ - LowerCaseFilterFactory
10
+ invariants:
11
+ multiValued: true
12
+ - boolean:
13
+ class: BoolField
14
+ suffix: b
15
+ invariants:
16
+ termVectors: valse
17
+ - date:
18
+ class: DateField
19
+ suffix: d
20
+ invariants:
21
+ termVectors: valse
22
+ - rand:
23
+ class: RandomSortField
24
+ - sdouble:
25
+ class: SortableDoubleField
26
+ suffix: e
27
+ invariants:
28
+ termVectors: valse
29
+ - sfloat:
30
+ class: SortableFloatField
31
+ suffix: f
32
+ invariants:
33
+ termVectors: valse
34
+ - sint:
35
+ class: SortableIntField
36
+ suffix: i
37
+ invariants:
38
+ termVectors: valse
39
+ - slong:
40
+ class: SortableLongField
41
+ suffix: l
42
+ invariants:
43
+ termVectors: valse
44
+ - string:
45
+ class: StrField
46
+ suffix: s
47
+ invariants:
48
+ termVectors: valse
49
+ - tint:
50
+ class: TrieIntField
51
+ suffix: it
52
+ invariants:
53
+ termVectors: valse
54
+ - tfloat:
55
+ class: TrieFloatField
56
+ suffix: ft
57
+ invariants:
58
+ termVectors: valse
59
+ - tdouble:
60
+ class: TrieDoubleField
61
+ suffix: et
62
+ invariants:
63
+ termVectors: valse
64
+ - tdate:
65
+ class: TrieDateField
66
+ suffix: dt
67
+ invariants:
68
+ termVectors: valse
69
+ fixed: !omap
70
+ - id:
71
+ type: string
72
+ attributes: [stored]
73
+ - type:
74
+ type: string
75
+ attributes: [multiValued]
76
+ - class_name:
77
+ type: string
78
+ - text:
79
+ type: string
80
+ attributes: [multiValued]
81
+ - lat:
82
+ type: tdouble
83
+ attributes: [stored]
84
+ - lng:
85
+ type: tdouble
86
+ attributes: [stored]
87
+ - 'random_*':
88
+ type: rand
89
+ - '_local*':
90
+ type: tdouble
91
+
92
+ variants: !omap
93
+ - multiValued: m
94
+ - stored: s
95
+ - termVectors: v