ts-xml 0.0.1
Sign up to get free protection for your applications and to get access to all the features.
- data/LICENSE +20 -0
- data/README.textile +30 -0
- data/features/alternate_primary_key.feature +27 -0
- data/features/attribute_transformation.feature +22 -0
- data/features/attribute_updates.feature +39 -0
- data/features/deleting_instances.feature +67 -0
- data/features/direct_attributes.feature +11 -0
- data/features/excerpts.feature +13 -0
- data/features/extensible_delta_indexing.feature +9 -0
- data/features/facets.feature +82 -0
- data/features/facets_across_model.feature +29 -0
- data/features/handling_edits.feature +92 -0
- data/features/retry_stale_indexes.feature +24 -0
- data/features/searching_across_models.feature +20 -0
- data/features/searching_by_index.feature +40 -0
- data/features/searching_by_model.feature +175 -0
- data/features/searching_with_find_arguments.feature +56 -0
- data/features/sphinx_detection.feature +25 -0
- data/features/sphinx_scopes.feature +42 -0
- data/features/step_definitions/alpha_steps.rb +7 -0
- data/features/step_definitions/beta_steps.rb +7 -0
- data/features/step_definitions/common_steps.rb +188 -0
- data/features/step_definitions/extensible_delta_indexing_steps.rb +7 -0
- data/features/step_definitions/facet_steps.rb +96 -0
- data/features/step_definitions/find_arguments_steps.rb +36 -0
- data/features/step_definitions/gamma_steps.rb +15 -0
- data/features/step_definitions/scope_steps.rb +15 -0
- data/features/step_definitions/search_steps.rb +89 -0
- data/features/step_definitions/sphinx_steps.rb +35 -0
- data/features/sti_searching.feature +19 -0
- data/features/support/database.example.yml +3 -0
- data/features/support/db/fixtures/alphas.rb +10 -0
- data/features/support/db/fixtures/authors.rb +1 -0
- data/features/support/db/fixtures/betas.rb +10 -0
- data/features/support/db/fixtures/boxes.rb +9 -0
- data/features/support/db/fixtures/categories.rb +1 -0
- data/features/support/db/fixtures/cats.rb +3 -0
- data/features/support/db/fixtures/comments.rb +24 -0
- data/features/support/db/fixtures/developers.rb +29 -0
- data/features/support/db/fixtures/dogs.rb +3 -0
- data/features/support/db/fixtures/extensible_betas.rb +10 -0
- data/features/support/db/fixtures/foxes.rb +3 -0
- data/features/support/db/fixtures/gammas.rb +10 -0
- data/features/support/db/fixtures/people.rb +1001 -0
- data/features/support/db/fixtures/posts.rb +6 -0
- data/features/support/db/fixtures/robots.rb +14 -0
- data/features/support/db/fixtures/tags.rb +27 -0
- data/features/support/db/migrations/create_alphas.rb +7 -0
- data/features/support/db/migrations/create_animals.rb +5 -0
- data/features/support/db/migrations/create_authors.rb +3 -0
- data/features/support/db/migrations/create_authors_posts.rb +6 -0
- data/features/support/db/migrations/create_betas.rb +5 -0
- data/features/support/db/migrations/create_boxes.rb +5 -0
- data/features/support/db/migrations/create_categories.rb +3 -0
- data/features/support/db/migrations/create_comments.rb +10 -0
- data/features/support/db/migrations/create_developers.rb +9 -0
- data/features/support/db/migrations/create_extensible_betas.rb +5 -0
- data/features/support/db/migrations/create_gammas.rb +3 -0
- data/features/support/db/migrations/create_people.rb +13 -0
- data/features/support/db/migrations/create_posts.rb +5 -0
- data/features/support/db/migrations/create_robots.rb +4 -0
- data/features/support/db/migrations/create_taggings.rb +5 -0
- data/features/support/db/migrations/create_tags.rb +4 -0
- data/features/support/env.rb +21 -0
- data/features/support/lib/generic_delta_handler.rb +8 -0
- data/features/support/models/alpha.rb +21 -0
- data/features/support/models/animal.rb +5 -0
- data/features/support/models/author.rb +3 -0
- data/features/support/models/beta.rb +8 -0
- data/features/support/models/box.rb +8 -0
- data/features/support/models/cat.rb +3 -0
- data/features/support/models/category.rb +4 -0
- data/features/support/models/comment.rb +10 -0
- data/features/support/models/developer.rb +16 -0
- data/features/support/models/dog.rb +3 -0
- data/features/support/models/extensible_beta.rb +9 -0
- data/features/support/models/fox.rb +5 -0
- data/features/support/models/gamma.rb +5 -0
- data/features/support/models/person.rb +23 -0
- data/features/support/models/post.rb +21 -0
- data/features/support/models/robot.rb +12 -0
- data/features/support/models/tag.rb +3 -0
- data/features/support/models/tagging.rb +4 -0
- data/lib/thinking_sphinx/xml.rb +5 -0
- data/lib/thinking_sphinx/xml/adapters/abstract_adapter.rb +34 -0
- data/lib/thinking_sphinx/xml/adapters/oracle_adapter.rb +123 -0
- data/lib/thinking_sphinx/xml/adapters/sqlite3_adapter.rb +95 -0
- data/lib/thinking_sphinx/xml/source.rb +46 -0
- data/lib/thinking_sphinx/xml/tasks.rb +95 -0
- data/spec/cucumber_env.rb +22 -0
- metadata +183 -0
data/LICENSE
ADDED
@@ -0,0 +1,20 @@
|
|
1
|
+
Copyright (c) 2009 Edgars Beigarts
|
2
|
+
|
3
|
+
Permission is hereby granted, free of charge, to any person obtaining
|
4
|
+
a copy of this software and associated documentation files (the
|
5
|
+
"Software"), to deal in the Software without restriction, including
|
6
|
+
without limitation the rights to use, copy, modify, merge, publish,
|
7
|
+
distribute, sublicense, and/or sell copies of the Software, and to
|
8
|
+
permit persons to whom the Software is furnished to do so, subject to
|
9
|
+
the following conditions:
|
10
|
+
|
11
|
+
The above copyright notice and this permission notice shall be
|
12
|
+
included in all copies or substantial portions of the Software.
|
13
|
+
|
14
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
15
|
+
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
16
|
+
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
17
|
+
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
18
|
+
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
19
|
+
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
20
|
+
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
data/README.textile
ADDED
@@ -0,0 +1,30 @@
|
|
1
|
+
h1. Support for Oracle, SQLite3 using xmlpipe2 for Thinking Sphinx
|
2
|
+
|
3
|
+
h2. Installation
|
4
|
+
|
5
|
+
You'll need Thinking Sphinx 1.3.0 or later.
|
6
|
+
|
7
|
+
<pre><code>gem install ts-xml --source http://gemcutter.org</code></pre>
|
8
|
+
|
9
|
+
In your @environment.rb@ file, with the rest of your gem dependencies:
|
10
|
+
|
11
|
+
<pre><code>config.gem 'ts-xml',
|
12
|
+
:lib => 'thinking_sphinx/xml'
|
13
|
+
:source => 'http://gemcutter.org'</code></pre>
|
14
|
+
|
15
|
+
And add the following line to the bottom of your @Rakefile@:
|
16
|
+
|
17
|
+
<pre><code>begin
|
18
|
+
require 'thinking_sphinx/tasks'
|
19
|
+
require 'thinking_sphinx/xml/tasks'
|
20
|
+
rescue LoadError
|
21
|
+
puts "Cannot load thinking sphinx tasks"
|
22
|
+
end</code></pre>
|
23
|
+
|
24
|
+
h2. Usage
|
25
|
+
|
26
|
+
TODO
|
27
|
+
|
28
|
+
h2. Copyright
|
29
|
+
|
30
|
+
Copyright (c) 2009 Edgars Beigarts, and released under an MIT Licence.
|
@@ -0,0 +1,27 @@
|
|
1
|
+
Feature: Searching on a single model
|
2
|
+
In order to use search models with non-integer primary keys
|
3
|
+
A developer
|
4
|
+
Should be able to search on a single model
|
5
|
+
|
6
|
+
Scenario: Searching using a basic query
|
7
|
+
Given Sphinx is running
|
8
|
+
And I am searching on robots
|
9
|
+
When I search for Sizzle
|
10
|
+
Then I should get 2 results
|
11
|
+
|
12
|
+
Scenario: Searching using another basic query
|
13
|
+
Given Sphinx is running
|
14
|
+
And I am searching on robots
|
15
|
+
When I search for fritz
|
16
|
+
Then I should get 1 result
|
17
|
+
|
18
|
+
Scenario: Deleting an instance
|
19
|
+
Given Sphinx is running
|
20
|
+
And I am searching on robots
|
21
|
+
When I search for Expendable
|
22
|
+
Then I should get 1 result
|
23
|
+
|
24
|
+
When I destroy robot Expendable
|
25
|
+
And I wait for Sphinx to catch up
|
26
|
+
And I search for Expendable
|
27
|
+
Then I should get 0 results
|
@@ -0,0 +1,22 @@
|
|
1
|
+
Feature: Handle not-quite-supported column types as attributes
|
2
|
+
In order for Thinking Sphinx to be more understanding with model structures
|
3
|
+
The plugin
|
4
|
+
Should be able to use translatable columns as attributes
|
5
|
+
|
6
|
+
Scenario: Decimals as floats
|
7
|
+
Given Sphinx is running
|
8
|
+
And I am searching on alphas
|
9
|
+
When I filter between 1.0 and 3.0 on cost
|
10
|
+
Then I should get 2 results
|
11
|
+
|
12
|
+
Scenario: Dates as Datetimes
|
13
|
+
Given Sphinx is running
|
14
|
+
And I am searching on alphas
|
15
|
+
When I filter between 1 and 3 days ago on created_on
|
16
|
+
Then I should get 2 results
|
17
|
+
|
18
|
+
Scenario: Timestamps as Datetimes
|
19
|
+
Given Sphinx is running
|
20
|
+
And I am searching on alphas
|
21
|
+
When I filter between 1 and 3 days ago on created_at
|
22
|
+
Then I should get 2 results
|
@@ -0,0 +1,39 @@
|
|
1
|
+
Feature: Update attributes directly to Sphinx
|
2
|
+
In order for updates to be more seamless
|
3
|
+
The plugin
|
4
|
+
Should update Sphinx's attributes where possible
|
5
|
+
|
6
|
+
Scenario: Updating attributes in Sphinx without delta indexes
|
7
|
+
Given Sphinx is running
|
8
|
+
And I am searching on alphas
|
9
|
+
When I filter by 3 on value
|
10
|
+
Then I should get 1 result
|
11
|
+
|
12
|
+
When I change the value of alpha four to 13
|
13
|
+
And I wait for Sphinx to catch up
|
14
|
+
And I filter by 13 on value
|
15
|
+
And I use index alpha_core
|
16
|
+
Then I should get 1 result
|
17
|
+
When I use index alternative_core
|
18
|
+
Then I should get 1 result
|
19
|
+
|
20
|
+
When I change the value of alpha four to 4
|
21
|
+
And I wait for Sphinx to catch up
|
22
|
+
And I filter by 13 on value
|
23
|
+
And I use index alpha_core
|
24
|
+
Then I should get 0 results
|
25
|
+
When I use index alternative_core
|
26
|
+
Then I should get 0 result
|
27
|
+
|
28
|
+
Scenario: Updating attributes in Sphinx with delta indexes
|
29
|
+
Given Sphinx is running
|
30
|
+
And I am searching on betas
|
31
|
+
When I filter by 8 on value
|
32
|
+
Then I should get 1 result
|
33
|
+
|
34
|
+
When I change the value of beta eight to 18
|
35
|
+
And I filter by 18 on value
|
36
|
+
Then I should get 1 result
|
37
|
+
|
38
|
+
When I search for the document id of beta eight in the beta_delta index
|
39
|
+
Then it should not exist
|
@@ -0,0 +1,67 @@
|
|
1
|
+
Feature: Keeping Sphinx in line with deleted model instances
|
2
|
+
In order to avoid deleted items being returned by Sphinx
|
3
|
+
Thinking Sphinx
|
4
|
+
Should keep deleted items out of search results
|
5
|
+
|
6
|
+
Scenario: Deleting instances from the core index
|
7
|
+
Given Sphinx is running
|
8
|
+
And I am searching on betas
|
9
|
+
When I search for three
|
10
|
+
Then I should get 1 result
|
11
|
+
|
12
|
+
When I destroy beta three
|
13
|
+
And I wait for Sphinx to catch up
|
14
|
+
And I search for three
|
15
|
+
Then I should get 0 results
|
16
|
+
|
17
|
+
Scenario: Deleting subclasses when the parent class is indexed
|
18
|
+
Given Sphinx is running
|
19
|
+
And I am searching on cats
|
20
|
+
When I search for moggy
|
21
|
+
Then I should get 1 result
|
22
|
+
|
23
|
+
When I destroy cat moggy
|
24
|
+
And I wait for Sphinx to catch up
|
25
|
+
And I search for moggy
|
26
|
+
Then I should get 0 results
|
27
|
+
|
28
|
+
Scenario: Deleting created instances from the delta index
|
29
|
+
Given Sphinx is running
|
30
|
+
And I am searching on betas
|
31
|
+
When I create a new beta named eleven
|
32
|
+
And I wait for Sphinx to catch up
|
33
|
+
And I search for eleven
|
34
|
+
Then I should get 1 result
|
35
|
+
|
36
|
+
When I destroy beta eleven
|
37
|
+
And I wait for Sphinx to catch up
|
38
|
+
And I search for eleven
|
39
|
+
Then I should get 0 results
|
40
|
+
|
41
|
+
Scenario: Deleting edited instances from the delta index
|
42
|
+
Given Sphinx is running
|
43
|
+
And I am searching on betas
|
44
|
+
When I change the name of beta four to fourteen
|
45
|
+
And I wait for Sphinx to catch up
|
46
|
+
And I search for fourteen
|
47
|
+
Then I should get 1 result
|
48
|
+
|
49
|
+
When I destroy beta fourteen
|
50
|
+
And I wait for Sphinx to catch up
|
51
|
+
And I search for fourteen
|
52
|
+
Then I should get 0 results
|
53
|
+
|
54
|
+
Scenario: Deleting created instances from the delta index when deltas are disabled
|
55
|
+
Given Sphinx is running
|
56
|
+
And I am searching on betas
|
57
|
+
When I create a new beta named thirteen
|
58
|
+
And I wait for Sphinx to catch up
|
59
|
+
And I search for thirteen
|
60
|
+
Then I should get 1 result
|
61
|
+
|
62
|
+
And I disable delta updates
|
63
|
+
And I destroy beta thirteen
|
64
|
+
And I wait for Sphinx to catch up
|
65
|
+
And I enable delta updates
|
66
|
+
And I search for thirteen
|
67
|
+
Then I should get 0 results
|
@@ -0,0 +1,11 @@
|
|
1
|
+
Feature: Direct Attributes
|
2
|
+
In order to avoid unnecessary SQL queries
|
3
|
+
I want to access attribute values from Sphinx's response
|
4
|
+
|
5
|
+
Scenario: Accessing attribute values directly
|
6
|
+
Given Sphinx is running
|
7
|
+
And I am searching on posts
|
8
|
+
When I search
|
9
|
+
Then the first result should have a comments count of 9
|
10
|
+
|
11
|
+
|
@@ -0,0 +1,13 @@
|
|
1
|
+
Feature: Generate excerpts for search results
|
2
|
+
|
3
|
+
Scenario: Basic Excerpts Syntax
|
4
|
+
Given Sphinx is running
|
5
|
+
And I am searching on comments
|
6
|
+
And I search for "lorem punto"
|
7
|
+
Then the content excerpt of the first result is "de un sitio mientras que mira su diseño. El <span class="match">punto</span> de usar <span class="match">Lorem</span> Ipsum es que tiene una distribución"
|
8
|
+
|
9
|
+
Scenario: Integrated Excerpts Syntax
|
10
|
+
Given Sphinx is running
|
11
|
+
And I am searching on comments
|
12
|
+
And I search for "lorem"
|
13
|
+
Then calling content on the first result excerpts object should return "de un sitio mientras que mira su diseño. El punto de usar <span class="match">Lorem</span> Ipsum es que tiene una distribución"
|
@@ -0,0 +1,9 @@
|
|
1
|
+
Feature: Delayed Delta Indexing
|
2
|
+
In order to have delta indexing on frequently-updated sites
|
3
|
+
Developers
|
4
|
+
Should be able to create their own handlers for delta indexing
|
5
|
+
|
6
|
+
Scenario: I specify a valid handler for delta indexing
|
7
|
+
Given Sphinx is running
|
8
|
+
When I change the name of extensible beta one to eleven
|
9
|
+
Then the generic delta handler should handle the delta indexing
|
@@ -0,0 +1,82 @@
|
|
1
|
+
Feature: Search and browse models by their defined facets
|
2
|
+
|
3
|
+
Scenario: Requesting facets
|
4
|
+
Given Sphinx is running
|
5
|
+
And I am searching on developers
|
6
|
+
When I am requesting facet results
|
7
|
+
Then I should have valid facet results
|
8
|
+
And I should have 6 facets
|
9
|
+
And I should have the facet State
|
10
|
+
And I should have the facet Country
|
11
|
+
And I should have the facet Age
|
12
|
+
And I should have the facet City
|
13
|
+
And I should have the facet Tag Ids
|
14
|
+
And I should have the facet Tags
|
15
|
+
|
16
|
+
Scenario: Requesting specific facets
|
17
|
+
Given Sphinx is running
|
18
|
+
And I am searching on developers
|
19
|
+
When I am requesting facet results
|
20
|
+
And I am requesting just the facet State
|
21
|
+
Then I should have valid facet results
|
22
|
+
And I should have 1 facet
|
23
|
+
And I should have the facet State
|
24
|
+
When I am requesting just the facets State and Age
|
25
|
+
Then I should have valid facet results
|
26
|
+
And I should have 2 facet
|
27
|
+
And I should have the facet State
|
28
|
+
And I should have the facet Age
|
29
|
+
|
30
|
+
Scenario: Requseting float facets
|
31
|
+
Given Sphinx is running
|
32
|
+
And I am searching on alphas
|
33
|
+
When I am requesting facet results
|
34
|
+
Then I should have 1 facet
|
35
|
+
And the Cost facet should have a 5.55 key
|
36
|
+
|
37
|
+
Scenario: Requesting facet results
|
38
|
+
Given Sphinx is running
|
39
|
+
And I am searching on developers
|
40
|
+
When I am requesting facet results
|
41
|
+
And I drill down where Country is Australia
|
42
|
+
Then I should get 11 results
|
43
|
+
|
44
|
+
Scenario: Requesting facet results by multiple facets
|
45
|
+
Given Sphinx is running
|
46
|
+
And I am searching on developers
|
47
|
+
When I am requesting facet results
|
48
|
+
And I drill down where Country is Australia and Age is 30
|
49
|
+
Then I should get 4 results
|
50
|
+
|
51
|
+
Scenario: Requesting facets with classes included
|
52
|
+
Given Sphinx is running
|
53
|
+
And I am searching on developers
|
54
|
+
When I am requesting facet results
|
55
|
+
And I want classes included
|
56
|
+
Then I should have valid facet results
|
57
|
+
And I should have 7 facets
|
58
|
+
And I should have the facet Class
|
59
|
+
|
60
|
+
Scenario: Requesting MVA facets
|
61
|
+
Given Sphinx is running
|
62
|
+
And I am searching on developers
|
63
|
+
When I am requesting facet results
|
64
|
+
And I drill down where tag_ids includes the id of tag Australia
|
65
|
+
Then I should get 11 results
|
66
|
+
When I am requesting facet results
|
67
|
+
And I drill down where tag_ids includes the id of tags Melbourne or Sydney
|
68
|
+
Then I should get 5 results
|
69
|
+
|
70
|
+
Scenario: Requesting MVA string facets
|
71
|
+
Given Sphinx is running
|
72
|
+
And I am searching on developers
|
73
|
+
When I am requesting facet results
|
74
|
+
Then the Tags facet should have an "Australia" key
|
75
|
+
Then the Tags facet should have an "Melbourne" key
|
76
|
+
Then the Tags facet should have an "Victoria" key
|
77
|
+
|
78
|
+
Scenario: Requesting MVA facets from source queries
|
79
|
+
Given Sphinx is running
|
80
|
+
And I am searching on posts
|
81
|
+
When I am requesting facet results
|
82
|
+
Then the Comment Ids facet should have 9 keys
|
@@ -0,0 +1,29 @@
|
|
1
|
+
Feature: Search and browse across models by their defined facets
|
2
|
+
|
3
|
+
Scenario: Requesting facets across multiple models
|
4
|
+
Given Sphinx is running
|
5
|
+
When I am requesting facet results
|
6
|
+
And I want all possible attributes
|
7
|
+
Then I should have valid facet results
|
8
|
+
And I should have 11 facets
|
9
|
+
And I should have the facet Class
|
10
|
+
And the Class facet should have a "Person" key
|
11
|
+
And I should have the facet Gender
|
12
|
+
And the Gender facet should have a "female" key
|
13
|
+
And I should have the facet Country
|
14
|
+
And I should have the facet Category Name
|
15
|
+
And the Category Name facet should have a "hello" key with 10 hits
|
16
|
+
|
17
|
+
Scenario: Requesting facets across models without class results
|
18
|
+
Given Sphinx is running
|
19
|
+
When I am requesting facet results
|
20
|
+
And I want all possible attributes
|
21
|
+
And I don't want classes included
|
22
|
+
Then I should have 10 facets
|
23
|
+
And I should not have the facet Class
|
24
|
+
|
25
|
+
Scenario: Requesting facets common to all indexed models
|
26
|
+
Given Sphinx is running
|
27
|
+
When I am requesting facet results
|
28
|
+
Then I should have the facet Class
|
29
|
+
And I should have 1 facet
|
@@ -0,0 +1,92 @@
|
|
1
|
+
Feature: Keeping Sphinx in line with model changes when requested
|
2
|
+
In order to keep indexes as up to date as possible
|
3
|
+
Thinking Sphinx
|
4
|
+
Should return the expected results depending on whether delta indexes are used
|
5
|
+
|
6
|
+
Scenario: Returning instance from old data if there is no delta
|
7
|
+
Given Sphinx is running
|
8
|
+
And I am searching on alphas
|
9
|
+
When I search for two
|
10
|
+
Then I should get 1 result
|
11
|
+
|
12
|
+
When I change the name of alpha two to twelve
|
13
|
+
And I wait for Sphinx to catch up
|
14
|
+
And I search for two
|
15
|
+
Then I should get 1 result
|
16
|
+
|
17
|
+
Scenario: Not returing an instance from old data if there is a delta
|
18
|
+
Given Sphinx is running
|
19
|
+
And I am searching on betas
|
20
|
+
When I search for two
|
21
|
+
Then I should get 1 result
|
22
|
+
|
23
|
+
When I change the name of beta two to twelve
|
24
|
+
And I wait for Sphinx to catch up
|
25
|
+
And I search for two
|
26
|
+
Then I should get 0 results
|
27
|
+
|
28
|
+
Scenario: Returning instance from new data if there is a delta
|
29
|
+
Given Sphinx is running
|
30
|
+
And I am searching on betas
|
31
|
+
When I search for one
|
32
|
+
Then I should get 1 result
|
33
|
+
|
34
|
+
When I change the name of beta one to eleven
|
35
|
+
And I wait for Sphinx to catch up
|
36
|
+
And I search for one
|
37
|
+
Then I should get 0 results
|
38
|
+
|
39
|
+
When I search for eleven
|
40
|
+
Then I should get 1 result
|
41
|
+
|
42
|
+
Scenario: Returning new records if there's a delta
|
43
|
+
Given Sphinx is running
|
44
|
+
And I am searching on betas
|
45
|
+
When I search for fifteen
|
46
|
+
Then I should get 0 results
|
47
|
+
|
48
|
+
When I create a new beta named fifteen
|
49
|
+
And I wait for Sphinx to catch up
|
50
|
+
And I search for fifteen
|
51
|
+
Then I should get 1 result
|
52
|
+
|
53
|
+
Scenario: Avoiding delta updates if there hasn't been changes
|
54
|
+
Given Sphinx is running
|
55
|
+
And I am searching on betas
|
56
|
+
When I search for five
|
57
|
+
Then I should get 1 result
|
58
|
+
|
59
|
+
When I change the name of beta five to five
|
60
|
+
And I wait for Sphinx to catch up
|
61
|
+
And I search for five
|
62
|
+
Then I should get 1 result
|
63
|
+
|
64
|
+
When I search for the document id of beta five in the beta_core index
|
65
|
+
Then it should exist if using Rails 2.1 or newer
|
66
|
+
When I search for the document id of beta five in the beta_delta index
|
67
|
+
Then it should not exist if using Rails 2.1 or newer
|
68
|
+
|
69
|
+
Scenario: Handling edits with a delta when Sphinx isn't running
|
70
|
+
Given Sphinx is running
|
71
|
+
And I am searching on betas
|
72
|
+
When I stop Sphinx
|
73
|
+
And I change the name of beta six to sixteen
|
74
|
+
And I start Sphinx
|
75
|
+
And I search for sixteen
|
76
|
+
Then I should get 1 result
|
77
|
+
|
78
|
+
Scenario: Handling edits when updates are disabled
|
79
|
+
Given Sphinx is running
|
80
|
+
And updates are disabled
|
81
|
+
And I am searching on betas
|
82
|
+
|
83
|
+
When I search for seven
|
84
|
+
Then I should get 1 result
|
85
|
+
|
86
|
+
When I change the name of beta seven to seventeen
|
87
|
+
And I wait for Sphinx to catch up
|
88
|
+
And I search for seven
|
89
|
+
Then I should get 1 result
|
90
|
+
|
91
|
+
When I search for seventeen
|
92
|
+
Then I should get 0 results
|