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.
- data/.gitignore +6 -10
- data/{sunspot_rails/.rspec → .rspec} +0 -0
- data/{sunspot_rails/History.txt → History.txt} +0 -0
- data/{sunspot/LICENSE → LICENSE} +0 -0
- data/{sunspot_rails/MIT-LICENSE → MIT-LICENSE} +0 -0
- data/{sunspot_rails/README.rdoc → README.rdoc} +0 -0
- data/Rakefile +12 -32
- data/{sunspot_rails/TODO → TODO} +0 -0
- data/{sunspot_rails/dev_tasks → dev_tasks}/rdoc.rake +0 -0
- data/{sunspot_rails/dev_tasks → dev_tasks}/release.rake +0 -0
- data/{sunspot_rails/dev_tasks → dev_tasks}/spec.rake +0 -0
- data/{sunspot/tasks → dev_tasks}/todo.rake +0 -0
- data/{sunspot_rails/gemfiles → gemfiles}/rails-2.3.14 +0 -0
- data/{sunspot_rails/gemfiles → gemfiles}/rails-3.0.15 +0 -0
- data/{sunspot_rails/gemfiles → gemfiles}/rails-3.1.6 +0 -0
- data/{sunspot_rails/gemfiles → gemfiles}/rails-3.2.6 +0 -0
- data/{sunspot_rails/generators → generators}/sunspot/sunspot_generator.rb +0 -0
- data/{sunspot_rails/generators → generators}/sunspot/templates/sunspot.yml +0 -0
- data/{sunspot_rails/install.rb → install.rb} +0 -0
- data/{sunspot_rails/lib → lib}/generators/sunspot_rails.rb +0 -0
- data/{sunspot_rails/lib → lib}/generators/sunspot_rails/install/install_generator.rb +0 -0
- data/{sunspot_rails/lib → lib}/generators/sunspot_rails/install/templates/config/sunspot.yml +0 -0
- data/{sunspot_rails/lib → lib}/sunspot/rails.rb +0 -0
- data/{sunspot_rails/lib → lib}/sunspot/rails/adapters.rb +0 -0
- data/{sunspot_rails/lib → lib}/sunspot/rails/configuration.rb +0 -0
- data/{sunspot_rails/lib → lib}/sunspot/rails/init.rb +0 -0
- data/{sunspot_rails/lib → lib}/sunspot/rails/log_subscriber.rb +0 -0
- data/{sunspot_rails/lib → lib}/sunspot/rails/railtie.rb +0 -0
- data/{sunspot_rails/lib → lib}/sunspot/rails/railties/controller_runtime.rb +0 -0
- data/{sunspot_rails/lib → lib}/sunspot/rails/request_lifecycle.rb +0 -0
- data/{sunspot_rails/lib → lib}/sunspot/rails/searchable.rb +0 -0
- data/{sunspot_rails/lib → lib}/sunspot/rails/server.rb +0 -0
- data/{sunspot_rails/lib → lib}/sunspot/rails/solr_instrumentation.rb +0 -0
- data/{sunspot_rails/lib → lib}/sunspot/rails/solr_logging.rb +0 -0
- data/{sunspot_rails/lib → lib}/sunspot/rails/spec_helper.rb +0 -0
- data/{sunspot_rails/lib → lib}/sunspot/rails/stub_session_proxy.rb +0 -0
- data/{sunspot_rails/lib → lib}/sunspot/rails/tasks.rb +0 -0
- data/{sunspot_rails/lib → lib}/sunspot_rails.rb +0 -0
- data/{sunspot_rails/spec → spec}/configuration_spec.rb +0 -0
- data/{sunspot_rails/spec → spec}/model_lifecycle_spec.rb +0 -0
- data/{sunspot_rails/spec → spec}/model_spec.rb +0 -0
- data/{sunspot_rails/spec → spec}/rails_template/app/controllers/application_controller.rb +0 -0
- data/{sunspot_rails/spec → spec}/rails_template/app/controllers/posts_controller.rb +0 -0
- data/{sunspot_rails/spec → spec}/rails_template/app/models/author.rb +0 -0
- data/{sunspot_rails/spec → spec}/rails_template/app/models/blog.rb +0 -0
- data/{sunspot_rails/spec → spec}/rails_template/app/models/location.rb +0 -0
- data/{sunspot_rails/spec → spec}/rails_template/app/models/photo_post.rb +0 -0
- data/{sunspot_rails/spec → spec}/rails_template/app/models/post.rb +0 -0
- data/{sunspot_rails/spec → spec}/rails_template/app/models/post_with_auto.rb +0 -0
- data/{sunspot_rails/spec → spec}/rails_template/app/models/post_with_default_scope.rb +0 -0
- data/{sunspot_rails/spec → spec}/rails_template/config/boot.rb +0 -0
- data/{sunspot_rails/spec → spec}/rails_template/config/preinitializer.rb +0 -0
- data/{sunspot_rails/spec → spec}/rails_template/config/routes.rb +0 -0
- data/{sunspot_rails/spec → spec}/rails_template/config/sunspot.yml +0 -0
- data/{sunspot_rails/spec → spec}/rails_template/db/schema.rb +0 -0
- data/{sunspot_rails/spec → spec}/request_lifecycle_spec.rb +0 -0
- data/{sunspot_rails/spec → spec}/schema.rb +0 -0
- data/{sunspot_rails/spec → spec}/searchable_spec.rb +0 -0
- data/{sunspot_rails/spec → spec}/server_spec.rb +0 -0
- data/{sunspot_rails/spec → spec}/session_spec.rb +0 -0
- data/{sunspot_rails/spec → spec}/shared_examples/indexed_after_save.rb +0 -0
- data/{sunspot_rails/spec → spec}/shared_examples/not_indexed_after_save.rb +0 -0
- data/{sunspot_rails/spec → spec}/spec_helper.rb +0 -0
- data/{sunspot_rails/spec → spec}/stub_session_proxy_spec.rb +0 -0
- data/{sunspot_rails/sunspot_rails.gemspec → sunspot_rails.gemspec} +0 -0
- metadata +102 -305
- data/.travis.yml +0 -35
- data/README.md +0 -863
- data/ci/travis.sh +0 -67
- data/sunspot/.gitignore +0 -13
- data/sunspot/Gemfile +0 -5
- data/sunspot/History.txt +0 -258
- data/sunspot/Rakefile +0 -13
- data/sunspot/TODO +0 -13
- data/sunspot/lib/light_config.rb +0 -40
- data/sunspot/lib/sunspot.rb +0 -579
- data/sunspot/lib/sunspot/adapters.rb +0 -349
- data/sunspot/lib/sunspot/batcher.rb +0 -62
- data/sunspot/lib/sunspot/class_set.rb +0 -23
- data/sunspot/lib/sunspot/composite_setup.rb +0 -202
- data/sunspot/lib/sunspot/configuration.rb +0 -53
- data/sunspot/lib/sunspot/data_extractor.rb +0 -50
- data/sunspot/lib/sunspot/dsl.rb +0 -5
- data/sunspot/lib/sunspot/dsl/adjustable.rb +0 -47
- data/sunspot/lib/sunspot/dsl/field_group.rb +0 -57
- data/sunspot/lib/sunspot/dsl/field_query.rb +0 -345
- data/sunspot/lib/sunspot/dsl/fields.rb +0 -103
- data/sunspot/lib/sunspot/dsl/fulltext.rb +0 -243
- data/sunspot/lib/sunspot/dsl/function.rb +0 -27
- data/sunspot/lib/sunspot/dsl/functional.rb +0 -44
- data/sunspot/lib/sunspot/dsl/more_like_this_query.rb +0 -56
- data/sunspot/lib/sunspot/dsl/paginatable.rb +0 -32
- data/sunspot/lib/sunspot/dsl/query_facet.rb +0 -36
- data/sunspot/lib/sunspot/dsl/restriction.rb +0 -25
- data/sunspot/lib/sunspot/dsl/restriction_with_near.rb +0 -160
- data/sunspot/lib/sunspot/dsl/scope.rb +0 -214
- data/sunspot/lib/sunspot/dsl/search.rb +0 -30
- data/sunspot/lib/sunspot/dsl/standard_query.rb +0 -122
- data/sunspot/lib/sunspot/field.rb +0 -193
- data/sunspot/lib/sunspot/field_factory.rb +0 -129
- data/sunspot/lib/sunspot/indexer.rb +0 -136
- data/sunspot/lib/sunspot/query.rb +0 -11
- data/sunspot/lib/sunspot/query/abstract_field_facet.rb +0 -55
- data/sunspot/lib/sunspot/query/bbox.rb +0 -15
- data/sunspot/lib/sunspot/query/boost_query.rb +0 -24
- data/sunspot/lib/sunspot/query/common_query.rb +0 -96
- data/sunspot/lib/sunspot/query/composite_fulltext.rb +0 -36
- data/sunspot/lib/sunspot/query/connective.rb +0 -206
- data/sunspot/lib/sunspot/query/date_field_facet.rb +0 -14
- data/sunspot/lib/sunspot/query/dismax.rb +0 -132
- data/sunspot/lib/sunspot/query/field_facet.rb +0 -41
- data/sunspot/lib/sunspot/query/field_group.rb +0 -37
- data/sunspot/lib/sunspot/query/filter.rb +0 -38
- data/sunspot/lib/sunspot/query/function_query.rb +0 -52
- data/sunspot/lib/sunspot/query/geo.rb +0 -53
- data/sunspot/lib/sunspot/query/geofilt.rb +0 -16
- data/sunspot/lib/sunspot/query/highlighting.rb +0 -62
- data/sunspot/lib/sunspot/query/more_like_this.rb +0 -61
- data/sunspot/lib/sunspot/query/more_like_this_query.rb +0 -12
- data/sunspot/lib/sunspot/query/pagination.rb +0 -42
- data/sunspot/lib/sunspot/query/query_facet.rb +0 -53
- data/sunspot/lib/sunspot/query/range_facet.rb +0 -15
- data/sunspot/lib/sunspot/query/restriction.rb +0 -308
- data/sunspot/lib/sunspot/query/scope.rb +0 -9
- data/sunspot/lib/sunspot/query/sort.rb +0 -109
- data/sunspot/lib/sunspot/query/sort_composite.rb +0 -34
- data/sunspot/lib/sunspot/query/standard_query.rb +0 -16
- data/sunspot/lib/sunspot/query/text_field_boost.rb +0 -17
- data/sunspot/lib/sunspot/schema.rb +0 -151
- data/sunspot/lib/sunspot/search.rb +0 -9
- data/sunspot/lib/sunspot/search/abstract_search.rb +0 -286
- data/sunspot/lib/sunspot/search/date_facet.rb +0 -35
- data/sunspot/lib/sunspot/search/facet_row.rb +0 -27
- data/sunspot/lib/sunspot/search/field_facet.rb +0 -88
- data/sunspot/lib/sunspot/search/field_group.rb +0 -70
- data/sunspot/lib/sunspot/search/group.rb +0 -54
- data/sunspot/lib/sunspot/search/highlight.rb +0 -38
- data/sunspot/lib/sunspot/search/hit.rb +0 -150
- data/sunspot/lib/sunspot/search/hit_enumerable.rb +0 -68
- data/sunspot/lib/sunspot/search/more_like_this_search.rb +0 -31
- data/sunspot/lib/sunspot/search/paginated_collection.rb +0 -57
- data/sunspot/lib/sunspot/search/query_facet.rb +0 -67
- data/sunspot/lib/sunspot/search/range_facet.rb +0 -37
- data/sunspot/lib/sunspot/search/standard_search.rb +0 -21
- data/sunspot/lib/sunspot/session.rb +0 -262
- data/sunspot/lib/sunspot/session_proxy.rb +0 -95
- data/sunspot/lib/sunspot/session_proxy/abstract_session_proxy.rb +0 -29
- data/sunspot/lib/sunspot/session_proxy/class_sharding_session_proxy.rb +0 -66
- data/sunspot/lib/sunspot/session_proxy/id_sharding_session_proxy.rb +0 -89
- data/sunspot/lib/sunspot/session_proxy/master_slave_session_proxy.rb +0 -43
- data/sunspot/lib/sunspot/session_proxy/retry_5xx_session_proxy.rb +0 -67
- data/sunspot/lib/sunspot/session_proxy/sharding_session_proxy.rb +0 -222
- data/sunspot/lib/sunspot/session_proxy/silent_fail_session_proxy.rb +0 -42
- data/sunspot/lib/sunspot/session_proxy/thread_local_session_proxy.rb +0 -37
- data/sunspot/lib/sunspot/setup.rb +0 -350
- data/sunspot/lib/sunspot/text_field_setup.rb +0 -29
- data/sunspot/lib/sunspot/type.rb +0 -393
- data/sunspot/lib/sunspot/util.rb +0 -252
- data/sunspot/lib/sunspot/version.rb +0 -3
- data/sunspot/script/console +0 -10
- data/sunspot/spec/api/adapters_spec.rb +0 -68
- data/sunspot/spec/api/batcher_spec.rb +0 -112
- data/sunspot/spec/api/binding_spec.rb +0 -50
- data/sunspot/spec/api/class_set_spec.rb +0 -24
- data/sunspot/spec/api/hit_enumerable_spec.rb +0 -47
- data/sunspot/spec/api/indexer/attributes_spec.rb +0 -149
- data/sunspot/spec/api/indexer/batch_spec.rb +0 -72
- data/sunspot/spec/api/indexer/dynamic_fields_spec.rb +0 -42
- data/sunspot/spec/api/indexer/fixed_fields_spec.rb +0 -57
- data/sunspot/spec/api/indexer/fulltext_spec.rb +0 -43
- data/sunspot/spec/api/indexer/removal_spec.rb +0 -53
- data/sunspot/spec/api/indexer/spec_helper.rb +0 -1
- data/sunspot/spec/api/indexer_spec.rb +0 -14
- data/sunspot/spec/api/query/advanced_manipulation_examples.rb +0 -35
- data/sunspot/spec/api/query/connectives_examples.rb +0 -201
- data/sunspot/spec/api/query/dsl_spec.rb +0 -18
- data/sunspot/spec/api/query/dynamic_fields_examples.rb +0 -165
- data/sunspot/spec/api/query/faceting_examples.rb +0 -497
- data/sunspot/spec/api/query/fulltext_examples.rb +0 -313
- data/sunspot/spec/api/query/function_spec.rb +0 -79
- data/sunspot/spec/api/query/geo_examples.rb +0 -68
- data/sunspot/spec/api/query/group_spec.rb +0 -32
- data/sunspot/spec/api/query/highlighting_examples.rb +0 -245
- data/sunspot/spec/api/query/more_like_this_spec.rb +0 -140
- data/sunspot/spec/api/query/ordering_pagination_examples.rb +0 -116
- data/sunspot/spec/api/query/scope_examples.rb +0 -275
- data/sunspot/spec/api/query/spatial_examples.rb +0 -27
- data/sunspot/spec/api/query/spec_helper.rb +0 -1
- data/sunspot/spec/api/query/standard_spec.rb +0 -29
- data/sunspot/spec/api/query/text_field_scoping_examples.rb +0 -30
- data/sunspot/spec/api/query/types_spec.rb +0 -20
- data/sunspot/spec/api/search/dynamic_fields_spec.rb +0 -33
- data/sunspot/spec/api/search/faceting_spec.rb +0 -360
- data/sunspot/spec/api/search/highlighting_spec.rb +0 -69
- data/sunspot/spec/api/search/hits_spec.rb +0 -147
- data/sunspot/spec/api/search/paginated_collection_spec.rb +0 -36
- data/sunspot/spec/api/search/results_spec.rb +0 -72
- data/sunspot/spec/api/search/search_spec.rb +0 -23
- data/sunspot/spec/api/search/spec_helper.rb +0 -1
- data/sunspot/spec/api/session_proxy/class_sharding_session_proxy_spec.rb +0 -85
- data/sunspot/spec/api/session_proxy/id_sharding_session_proxy_spec.rb +0 -30
- data/sunspot/spec/api/session_proxy/master_slave_session_proxy_spec.rb +0 -41
- data/sunspot/spec/api/session_proxy/retry_5xx_session_proxy_spec.rb +0 -78
- data/sunspot/spec/api/session_proxy/sharding_session_proxy_spec.rb +0 -77
- data/sunspot/spec/api/session_proxy/silent_fail_session_proxy_spec.rb +0 -24
- data/sunspot/spec/api/session_proxy/spec_helper.rb +0 -9
- data/sunspot/spec/api/session_proxy/thread_local_session_proxy_spec.rb +0 -39
- data/sunspot/spec/api/session_spec.rb +0 -232
- data/sunspot/spec/api/spec_helper.rb +0 -3
- data/sunspot/spec/api/sunspot_spec.rb +0 -29
- data/sunspot/spec/ext.rb +0 -11
- data/sunspot/spec/helpers/indexer_helper.rb +0 -17
- data/sunspot/spec/helpers/integration_helper.rb +0 -8
- data/sunspot/spec/helpers/mock_session_helper.rb +0 -13
- data/sunspot/spec/helpers/query_helper.rb +0 -26
- data/sunspot/spec/helpers/search_helper.rb +0 -68
- data/sunspot/spec/integration/dynamic_fields_spec.rb +0 -57
- data/sunspot/spec/integration/faceting_spec.rb +0 -330
- data/sunspot/spec/integration/field_grouping_spec.rb +0 -100
- data/sunspot/spec/integration/geospatial_spec.rb +0 -96
- data/sunspot/spec/integration/highlighting_spec.rb +0 -44
- data/sunspot/spec/integration/indexing_spec.rb +0 -55
- data/sunspot/spec/integration/keyword_search_spec.rb +0 -317
- data/sunspot/spec/integration/local_search_spec.rb +0 -64
- data/sunspot/spec/integration/more_like_this_spec.rb +0 -43
- data/sunspot/spec/integration/scoped_search_spec.rb +0 -386
- data/sunspot/spec/integration/stored_fields_spec.rb +0 -12
- data/sunspot/spec/integration/test_pagination.rb +0 -43
- data/sunspot/spec/integration/unicode_spec.rb +0 -15
- data/sunspot/spec/mocks/adapters.rb +0 -33
- data/sunspot/spec/mocks/blog.rb +0 -3
- data/sunspot/spec/mocks/comment.rb +0 -21
- data/sunspot/spec/mocks/connection.rb +0 -126
- data/sunspot/spec/mocks/mock_adapter.rb +0 -30
- data/sunspot/spec/mocks/mock_class_sharding_session_proxy.rb +0 -24
- data/sunspot/spec/mocks/mock_record.rb +0 -52
- data/sunspot/spec/mocks/mock_sharding_session_proxy.rb +0 -15
- data/sunspot/spec/mocks/photo.rb +0 -11
- data/sunspot/spec/mocks/post.rb +0 -86
- data/sunspot/spec/mocks/super_class.rb +0 -2
- data/sunspot/spec/mocks/user.rb +0 -13
- data/sunspot/spec/spec_helper.rb +0 -40
- data/sunspot/sunspot.gemspec +0 -37
- data/sunspot/tasks/rdoc.rake +0 -27
- data/sunspot/tasks/schema.rake +0 -19
- data/sunspot_rails/.gitignore +0 -7
- data/sunspot_rails/LICENSE +0 -18
- data/sunspot_rails/Rakefile +0 -17
- data/sunspot_rails/dev_tasks/todo.rake +0 -4
- data/sunspot_solr/Gemfile +0 -3
- data/sunspot_solr/README.rdoc +0 -24
- data/sunspot_solr/bin/sunspot-installer +0 -20
- data/sunspot_solr/bin/sunspot-solr +0 -80
- data/sunspot_solr/lib/sunspot/solr/installer.rb +0 -25
- data/sunspot_solr/lib/sunspot/solr/installer/config_installer.rb +0 -46
- data/sunspot_solr/lib/sunspot/solr/installer/task_helper.rb +0 -13
- data/sunspot_solr/lib/sunspot/solr/java.rb +0 -10
- data/sunspot_solr/lib/sunspot/solr/railtie.rb +0 -15
- data/sunspot_solr/lib/sunspot/solr/server.rb +0 -223
- data/sunspot_solr/lib/sunspot/solr/tasks.rb +0 -49
- data/sunspot_solr/lib/sunspot_solr.rb +0 -5
- data/sunspot_solr/solr/README.txt +0 -42
- data/sunspot_solr/solr/etc/jetty.xml +0 -219
- data/sunspot_solr/solr/etc/webdefault.xml +0 -379
- data/sunspot_solr/solr/lib/jetty-6.1.26-patched-JETTY-1340.jar +0 -0
- data/sunspot_solr/solr/lib/jetty-util-6.1.26-patched-JETTY-1340.jar +0 -0
- data/sunspot_solr/solr/lib/jsp-2.1/ant-1.6.5.jar +0 -0
- data/sunspot_solr/solr/lib/jsp-2.1/core-3.1.1.jar +0 -0
- data/sunspot_solr/solr/lib/jsp-2.1/jsp-2.1.jar +0 -0
- data/sunspot_solr/solr/lib/jsp-2.1/jsp-api-2.1.jar +0 -0
- data/sunspot_solr/solr/lib/servlet-api-2.5-20081211.jar +0 -0
- data/sunspot_solr/solr/solr/.gitignore +0 -1
- data/sunspot_solr/solr/solr/README.txt +0 -54
- data/sunspot_solr/solr/solr/conf/admin-extra.html +0 -31
- data/sunspot_solr/solr/solr/conf/elevate.xml +0 -36
- data/sunspot_solr/solr/solr/conf/mapping-ISOLatin1Accent.txt +0 -246
- data/sunspot_solr/solr/solr/conf/protwords.txt +0 -21
- data/sunspot_solr/solr/solr/conf/schema.xml +0 -250
- data/sunspot_solr/solr/solr/conf/scripts.conf +0 -24
- data/sunspot_solr/solr/solr/conf/solrconfig.xml +0 -934
- data/sunspot_solr/solr/solr/conf/spellings.txt +0 -2
- data/sunspot_solr/solr/solr/conf/stopwords.txt +0 -58
- data/sunspot_solr/solr/solr/conf/synonyms.txt +0 -31
- data/sunspot_solr/solr/solr/conf/xslt/example.xsl +0 -132
- data/sunspot_solr/solr/solr/conf/xslt/example_atom.xsl +0 -67
- data/sunspot_solr/solr/solr/conf/xslt/example_rss.xsl +0 -66
- data/sunspot_solr/solr/solr/conf/xslt/luke.xsl +0 -337
- data/sunspot_solr/solr/start.jar +0 -0
- data/sunspot_solr/solr/webapps/solr.war +0 -0
- data/sunspot_solr/spec/server_spec.rb +0 -98
- data/sunspot_solr/spec/spec_helper.rb +0 -18
- data/sunspot_solr/sunspot_solr.gemspec +0 -37
- data/tools/gem_tasks.rb +0 -69
@@ -1,313 +0,0 @@
|
|
1
|
-
shared_examples_for 'fulltext query' do
|
2
|
-
it 'searches by keywords' do
|
3
|
-
search do
|
4
|
-
keywords 'keyword search'
|
5
|
-
end
|
6
|
-
connection.should have_last_search_with(:q => 'keyword search')
|
7
|
-
end
|
8
|
-
|
9
|
-
it 'ignores keywords if empty' do
|
10
|
-
search do
|
11
|
-
keywords ''
|
12
|
-
end
|
13
|
-
connection.should_not have_last_search_with(:defType => 'dismax')
|
14
|
-
end
|
15
|
-
|
16
|
-
it 'ignores keywords if nil' do
|
17
|
-
search do
|
18
|
-
keywords nil
|
19
|
-
end
|
20
|
-
connection.should_not have_last_search_with(:defType => 'dismax')
|
21
|
-
end
|
22
|
-
|
23
|
-
it 'ignores keywords with only whitespace' do
|
24
|
-
search do
|
25
|
-
keywords " \t"
|
26
|
-
end
|
27
|
-
connection.should_not have_last_search_with(:defType => 'dismax')
|
28
|
-
end
|
29
|
-
|
30
|
-
it 'gracefully ignores keywords block if keywords ignored' do
|
31
|
-
search do
|
32
|
-
keywords(nil) { fields(:title) }
|
33
|
-
end
|
34
|
-
end
|
35
|
-
|
36
|
-
it 'sets default query parser to dismax when keywords used' do
|
37
|
-
search do
|
38
|
-
keywords 'keyword search'
|
39
|
-
end
|
40
|
-
connection.should have_last_search_with(:defType => 'dismax')
|
41
|
-
end
|
42
|
-
|
43
|
-
it 'searches types in filter query if keywords used' do
|
44
|
-
search do
|
45
|
-
keywords 'keyword search'
|
46
|
-
end
|
47
|
-
connection.should have_last_search_with(:fq => ['type:Post'])
|
48
|
-
end
|
49
|
-
|
50
|
-
describe 'with multiple keyword components' do
|
51
|
-
before :each do
|
52
|
-
session.search Post do
|
53
|
-
keywords 'first search', :fields => :title
|
54
|
-
keywords 'second search'
|
55
|
-
end
|
56
|
-
end
|
57
|
-
|
58
|
-
it 'puts specified keywords in subquery' do
|
59
|
-
subqueries(:q).map { |subquery| subquery[:v] }.should ==
|
60
|
-
['first search', 'second search']
|
61
|
-
end
|
62
|
-
|
63
|
-
it 'puts specified dismax parameters in subquery' do
|
64
|
-
subqueries(:q).first[:qf].should == 'title_text'
|
65
|
-
end
|
66
|
-
|
67
|
-
it 'puts default dismax parameters in subquery' do
|
68
|
-
subqueries(:q).last[:qf].split(' ').sort.should == %w(backwards_title_text body_textsv tags_textv title_text)
|
69
|
-
end
|
70
|
-
|
71
|
-
it 'puts field list in main query' do
|
72
|
-
connection.should have_last_search_with(:fl => '* score')
|
73
|
-
end
|
74
|
-
end
|
75
|
-
|
76
|
-
it 'searches all text fields for searched class' do
|
77
|
-
search = search do
|
78
|
-
keywords 'keyword search'
|
79
|
-
end
|
80
|
-
connection.searches.last[:qf].split(' ').sort.should == %w(backwards_title_text body_textsv tags_textv title_text)
|
81
|
-
end
|
82
|
-
|
83
|
-
it 'searches both stored and unstored text fields' do
|
84
|
-
search Post, Namespaced::Comment do
|
85
|
-
keywords 'keyword search'
|
86
|
-
end
|
87
|
-
connection.searches.last[:qf].split(' ').sort.should == %w(author_name_text backwards_title_text body_text body_textsv tags_textv title_text)
|
88
|
-
end
|
89
|
-
|
90
|
-
it 'searches only specified text fields when specified' do
|
91
|
-
search do
|
92
|
-
keywords 'keyword search', :fields => [:title, :body]
|
93
|
-
end
|
94
|
-
connection.searches.last[:qf].split(' ').sort.should == %w(body_textsv title_text)
|
95
|
-
end
|
96
|
-
|
97
|
-
it 'excludes text fields when instructed' do
|
98
|
-
search do
|
99
|
-
keywords 'keyword search' do
|
100
|
-
exclude_fields :backwards_title, :body_mlt
|
101
|
-
end
|
102
|
-
end
|
103
|
-
connection.searches.last[:qf].split(' ').sort.should == %w(body_textsv tags_textv title_text)
|
104
|
-
end
|
105
|
-
|
106
|
-
it 'assigns boost to fields when specified' do
|
107
|
-
search do
|
108
|
-
keywords 'keyword search' do
|
109
|
-
fields :title => 2.0, :body => 0.75
|
110
|
-
end
|
111
|
-
end
|
112
|
-
connection.searches.last[:qf].split(' ').sort.should == %w(body_textsv^0.75 title_text^2.0)
|
113
|
-
end
|
114
|
-
|
115
|
-
it 'allows assignment of boosted and unboosted fields' do
|
116
|
-
search do
|
117
|
-
keywords 'keyword search' do
|
118
|
-
fields :body, :title => 2.0
|
119
|
-
end
|
120
|
-
end
|
121
|
-
end
|
122
|
-
|
123
|
-
it 'searches both unstored and stored text field with same name when specified' do
|
124
|
-
search Post, Namespaced::Comment do
|
125
|
-
keywords 'keyword search', :fields => [:body]
|
126
|
-
end
|
127
|
-
connection.searches.last[:qf].split(' ').sort.should == %w(body_text body_textsv)
|
128
|
-
end
|
129
|
-
|
130
|
-
it 'requests score when keywords used' do
|
131
|
-
search do
|
132
|
-
keywords 'keyword search'
|
133
|
-
end
|
134
|
-
connection.should have_last_search_with(:fl => '* score')
|
135
|
-
end
|
136
|
-
|
137
|
-
it 'does not request score when keywords not used' do
|
138
|
-
search Post
|
139
|
-
connection.should_not have_last_search_with(:fl)
|
140
|
-
end
|
141
|
-
|
142
|
-
it 'sets phrase fields' do
|
143
|
-
search do
|
144
|
-
keywords 'great pizza' do
|
145
|
-
phrase_fields :title => 2.0
|
146
|
-
end
|
147
|
-
end
|
148
|
-
connection.should have_last_search_with(:pf => 'title_text^2.0')
|
149
|
-
end
|
150
|
-
|
151
|
-
it 'sets phrase fields with boost' do
|
152
|
-
search do
|
153
|
-
keywords 'great pizza' do
|
154
|
-
phrase_fields :title => 1.5
|
155
|
-
end
|
156
|
-
end
|
157
|
-
connection.should have_last_search_with(:pf => 'title_text^1.5')
|
158
|
-
end
|
159
|
-
|
160
|
-
it 'sets phrase slop from DSL' do
|
161
|
-
search do
|
162
|
-
keywords 'great pizza' do
|
163
|
-
phrase_slop 2
|
164
|
-
end
|
165
|
-
end
|
166
|
-
connection.should have_last_search_with(:ps => 2)
|
167
|
-
end
|
168
|
-
|
169
|
-
it 'sets boost for certain fields without restricting fields' do
|
170
|
-
search do
|
171
|
-
keywords 'great pizza' do
|
172
|
-
boost_fields :title => 1.5
|
173
|
-
end
|
174
|
-
end
|
175
|
-
connection.searches.last[:qf].split(' ').sort.should == %w(backwards_title_text body_textsv tags_textv title_text^1.5)
|
176
|
-
end
|
177
|
-
|
178
|
-
it 'ignores boost fields that do not apply' do
|
179
|
-
search do
|
180
|
-
keywords 'great pizza' do
|
181
|
-
boost_fields :bogus => 1.2, :title => 1.5
|
182
|
-
end
|
183
|
-
end
|
184
|
-
connection.searches.last[:qf].split(' ').sort.should == %w(backwards_title_text body_textsv tags_textv title_text^1.5)
|
185
|
-
end
|
186
|
-
|
187
|
-
it 'sets default boost with default fields' do
|
188
|
-
search Photo do
|
189
|
-
keywords 'great pizza'
|
190
|
-
end
|
191
|
-
connection.should have_last_search_with(:qf => 'caption_text^1.5')
|
192
|
-
end
|
193
|
-
|
194
|
-
it 'sets default boost with fields specified in options' do
|
195
|
-
search Photo do
|
196
|
-
keywords 'great pizza', :fields => [:caption]
|
197
|
-
end
|
198
|
-
connection.should have_last_search_with(:qf => 'caption_text^1.5')
|
199
|
-
end
|
200
|
-
|
201
|
-
it 'sets default boost with fields specified in DSL' do
|
202
|
-
search Photo do
|
203
|
-
keywords 'great pizza' do
|
204
|
-
fields :caption
|
205
|
-
end
|
206
|
-
end
|
207
|
-
connection.should have_last_search_with(:qf => 'caption_text^1.5')
|
208
|
-
end
|
209
|
-
|
210
|
-
it 'overrides default boost when specified in DSL' do
|
211
|
-
search Photo do
|
212
|
-
keywords 'great pizza' do
|
213
|
-
fields :caption => 2.0
|
214
|
-
end
|
215
|
-
end
|
216
|
-
connection.should have_last_search_with(:qf => 'caption_text^2.0')
|
217
|
-
end
|
218
|
-
|
219
|
-
it 'creates boost query' do
|
220
|
-
search do
|
221
|
-
keywords 'great pizza' do
|
222
|
-
boost 2.0 do
|
223
|
-
with(:average_rating).greater_than(2.0)
|
224
|
-
end
|
225
|
-
end
|
226
|
-
end
|
227
|
-
connection.should have_last_search_with(:bq => ['average_rating_ft:{2\.0 TO *}^2.0'])
|
228
|
-
end
|
229
|
-
|
230
|
-
it 'creates multiple boost queries' do
|
231
|
-
search do
|
232
|
-
keywords 'great pizza' do
|
233
|
-
boost(2.0) do
|
234
|
-
with(:average_rating).greater_than(2.0)
|
235
|
-
end
|
236
|
-
boost(1.5) do
|
237
|
-
with(:featured, true)
|
238
|
-
end
|
239
|
-
end
|
240
|
-
end
|
241
|
-
connection.should have_last_search_with(
|
242
|
-
:bq => [
|
243
|
-
'average_rating_ft:{2\.0 TO *}^2.0',
|
244
|
-
'featured_bs:true^1.5'
|
245
|
-
]
|
246
|
-
)
|
247
|
-
end
|
248
|
-
|
249
|
-
it 'sends minimum match parameter from options' do
|
250
|
-
search do
|
251
|
-
keywords 'great pizza', :minimum_match => 2
|
252
|
-
end
|
253
|
-
connection.should have_last_search_with(:mm => 2)
|
254
|
-
end
|
255
|
-
|
256
|
-
it 'sends minimum match parameter from DSL' do
|
257
|
-
search do
|
258
|
-
keywords('great pizza') { minimum_match(2) }
|
259
|
-
end
|
260
|
-
connection.should have_last_search_with(:mm => 2)
|
261
|
-
end
|
262
|
-
|
263
|
-
it 'sends tiebreaker parameter from options' do
|
264
|
-
search do
|
265
|
-
keywords 'great pizza', :tie => 0.1
|
266
|
-
end
|
267
|
-
connection.should have_last_search_with(:tie => 0.1)
|
268
|
-
end
|
269
|
-
|
270
|
-
it 'sends tiebreaker parameter from DSL' do
|
271
|
-
search do
|
272
|
-
keywords('great pizza') { tie(0.1) }
|
273
|
-
end
|
274
|
-
connection.should have_last_search_with(:tie => 0.1)
|
275
|
-
end
|
276
|
-
|
277
|
-
it 'sends query phrase slop from options' do
|
278
|
-
search do
|
279
|
-
keywords 'great pizza', :query_phrase_slop => 2
|
280
|
-
end
|
281
|
-
connection.should have_last_search_with(:qs => 2)
|
282
|
-
end
|
283
|
-
|
284
|
-
it 'sends query phrase slop from DSL' do
|
285
|
-
search do
|
286
|
-
keywords('great pizza') { query_phrase_slop(2) }
|
287
|
-
end
|
288
|
-
connection.should have_last_search_with(:qs => 2)
|
289
|
-
end
|
290
|
-
|
291
|
-
it 'allows specification of a text field that only exists in one type' do
|
292
|
-
search Post, Namespaced::Comment do
|
293
|
-
keywords 'keywords', :fields => :author_name
|
294
|
-
end
|
295
|
-
connection.searches.last[:qf].should == 'author_name_text'
|
296
|
-
end
|
297
|
-
|
298
|
-
it 'raises Sunspot::UnrecognizedFieldError for nonexistant fields in keywords' do
|
299
|
-
lambda do
|
300
|
-
search do
|
301
|
-
keywords :text, :fields => :bogus
|
302
|
-
end
|
303
|
-
end.should raise_error(Sunspot::UnrecognizedFieldError)
|
304
|
-
end
|
305
|
-
|
306
|
-
it 'raises Sunspot::UnrecognizedFieldError if a text field that does not exist for any type is specified' do
|
307
|
-
lambda do
|
308
|
-
search Post, Namespaced::Comment do
|
309
|
-
keywords 'fulltext', :fields => :bogus
|
310
|
-
end
|
311
|
-
end.should raise_error(Sunspot::UnrecognizedFieldError)
|
312
|
-
end
|
313
|
-
end
|
@@ -1,79 +0,0 @@
|
|
1
|
-
require File.expand_path('spec_helper', File.dirname(__FILE__))
|
2
|
-
|
3
|
-
describe 'function query' do
|
4
|
-
it "should send query to solr with boost function" do
|
5
|
-
session.search Post do
|
6
|
-
keywords('pizza') do
|
7
|
-
boost(function { :average_rating })
|
8
|
-
end
|
9
|
-
end
|
10
|
-
connection.should have_last_search_including(:bf, 'average_rating_ft')
|
11
|
-
end
|
12
|
-
|
13
|
-
it "should handle boost function with constant float" do
|
14
|
-
session.search Post do
|
15
|
-
keywords('pizza') do
|
16
|
-
boost(function { 10.5 })
|
17
|
-
end
|
18
|
-
end
|
19
|
-
connection.should have_last_search_including(:bf, '10.5')
|
20
|
-
end
|
21
|
-
|
22
|
-
it "should handle boost function with time literal" do
|
23
|
-
session.search Post do
|
24
|
-
keywords('pizza') do
|
25
|
-
boost(function { Time.parse('2010-03-25 14:13:00 EDT') })
|
26
|
-
end
|
27
|
-
end
|
28
|
-
connection.should have_last_search_including(:bf, '2010-03-25T18:13:00Z')
|
29
|
-
end
|
30
|
-
|
31
|
-
it "should handle arbitrary functions in a function query block" do
|
32
|
-
session.search Post do
|
33
|
-
keywords('pizza') do
|
34
|
-
boost(function { product(:average_rating, 10) })
|
35
|
-
end
|
36
|
-
end
|
37
|
-
connection.should have_last_search_including(:bf, 'product(average_rating_ft,10)')
|
38
|
-
end
|
39
|
-
|
40
|
-
it "should handle the sub function in a function query block" do
|
41
|
-
session.search Post do
|
42
|
-
keywords('pizza') do
|
43
|
-
boost(function { sub(:average_rating, 10) })
|
44
|
-
end
|
45
|
-
end
|
46
|
-
connection.should have_last_search_including(:bf, 'sub(average_rating_ft,10)')
|
47
|
-
end
|
48
|
-
|
49
|
-
it "should handle nested functions in a function query block" do
|
50
|
-
session.search Post do
|
51
|
-
keywords('pizza') do
|
52
|
-
boost(function { product(:average_rating, sum(:average_rating, 20)) })
|
53
|
-
end
|
54
|
-
end
|
55
|
-
connection.should have_last_search_including(:bf, 'product(average_rating_ft,sum(average_rating_ft,20))')
|
56
|
-
end
|
57
|
-
|
58
|
-
# TODO SOLR 1.5
|
59
|
-
it "should raise ArgumentError if string literal passed" do
|
60
|
-
lambda do
|
61
|
-
session.search Post do
|
62
|
-
keywords('pizza') do
|
63
|
-
boost(function { "hello world" })
|
64
|
-
end
|
65
|
-
end
|
66
|
-
end.should raise_error(ArgumentError)
|
67
|
-
end
|
68
|
-
|
69
|
-
it "should raise UnrecognizedFieldError if bogus field name passed" do
|
70
|
-
lambda do
|
71
|
-
session.search Post do
|
72
|
-
keywords('pizza') do
|
73
|
-
boost(function { :bogus })
|
74
|
-
end
|
75
|
-
end
|
76
|
-
end.should raise_error(Sunspot::UnrecognizedFieldError)
|
77
|
-
end
|
78
|
-
end
|
79
|
-
|
@@ -1,68 +0,0 @@
|
|
1
|
-
require 'bigdecimal'
|
2
|
-
|
3
|
-
shared_examples_for 'geohash query' do
|
4
|
-
it 'searches for nearby points with defaults' do
|
5
|
-
search do
|
6
|
-
with(:coordinates).near(40.7, -73.5)
|
7
|
-
end
|
8
|
-
connection.should have_last_search_including(:q, build_geo_query)
|
9
|
-
end
|
10
|
-
|
11
|
-
it 'searches for nearby points with non-Float arguments' do
|
12
|
-
search do
|
13
|
-
with(:coordinates).near(BigDecimal.new('40.7'), BigDecimal.new('-73.5'))
|
14
|
-
end
|
15
|
-
connection.should have_last_search_including(:q, build_geo_query)
|
16
|
-
end
|
17
|
-
|
18
|
-
it 'searches for nearby points with given precision' do
|
19
|
-
search do
|
20
|
-
with(:coordinates).near(40.7, -73.5, :precision => 10)
|
21
|
-
end
|
22
|
-
connection.should have_last_search_including(:q, build_geo_query(:precision => 10))
|
23
|
-
end
|
24
|
-
|
25
|
-
it 'searches for nearby points with given precision factor' do
|
26
|
-
search do
|
27
|
-
with(:coordinates).near(40.7, -73.5, :precision_factor => 1.5)
|
28
|
-
end
|
29
|
-
connection.should have_last_search_including(:q, build_geo_query(:precision_factor => 1.5))
|
30
|
-
end
|
31
|
-
|
32
|
-
it 'searches for nearby points with given boost' do
|
33
|
-
search do
|
34
|
-
with(:coordinates).near(40.7, -73.5, :boost => 2.0)
|
35
|
-
end
|
36
|
-
connection.should have_last_search_including(:q, build_geo_query(:boost => 2.0))
|
37
|
-
end
|
38
|
-
|
39
|
-
it 'performs both dismax search and location search' do
|
40
|
-
search do
|
41
|
-
fulltext 'pizza', :fields => :title
|
42
|
-
with(:coordinates).near(40.7, -73.5)
|
43
|
-
end
|
44
|
-
expected =
|
45
|
-
"{!dismax fl='* score' qf='title_text'}pizza (#{build_geo_query})"
|
46
|
-
connection.should have_last_search_including(
|
47
|
-
:q,
|
48
|
-
%Q(_query_:"{!dismax qf='title_text'}pizza" (#{build_geo_query}))
|
49
|
-
)
|
50
|
-
end
|
51
|
-
|
52
|
-
private
|
53
|
-
|
54
|
-
def build_geo_query(options = {})
|
55
|
-
precision = options[:precision] || 7
|
56
|
-
precision_factor = options[:precision_factor] || 16.0
|
57
|
-
boost = options[:boost] || 1.0
|
58
|
-
hash = 'dr5xx3nytvgs'
|
59
|
-
(precision..12).map do |i|
|
60
|
-
phrase =
|
61
|
-
if i == 12 then hash
|
62
|
-
else "#{hash[0, i]}*"
|
63
|
-
end
|
64
|
-
precision_boost = Sunspot::Util.format_float(boost*precision_factor**(i-12.0), 3)
|
65
|
-
"coordinates_s:#{phrase}^#{precision_boost}"
|
66
|
-
end.reverse.join(' OR ')
|
67
|
-
end
|
68
|
-
end
|