2007-01-17 05:37:56 -05:00
|
|
|
# The ASF licenses this file to You under the Apache License, Version 2.0
|
|
|
|
# (the "License"); you may not use this file except in compliance with
|
|
|
|
# the License. You may obtain a copy of the License at
|
|
|
|
#
|
|
|
|
# http://www.apache.org/licenses/LICENSE-2.0
|
|
|
|
#
|
|
|
|
# Unless required by applicable law or agreed to in writing, software
|
|
|
|
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
|
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
|
|
# See the License for the specific language governing permissions and
|
|
|
|
# limitations under the License.
|
|
|
|
|
2007-01-16 17:02:13 -05:00
|
|
|
require 'solr_mock_base'
|
|
|
|
|
|
|
|
class StandardResponseTest < SolrMockBaseTestCase
|
|
|
|
|
|
|
|
def test_basic
|
|
|
|
ruby_code =
|
|
|
|
<<RUBY_CODE
|
|
|
|
{
|
|
|
|
'responseHeader'=>{
|
|
|
|
'status'=>0,
|
|
|
|
'QTime'=>1,
|
|
|
|
'params'=>{
|
|
|
|
'wt'=>'ruby',
|
|
|
|
'rows'=>'10',
|
|
|
|
'explainOther'=>'',
|
|
|
|
'start'=>'0',
|
|
|
|
'hl.fl'=>'',
|
|
|
|
'indent'=>'on',
|
|
|
|
'q'=>'guido',
|
|
|
|
'fl'=>'*,score',
|
|
|
|
'qt'=>'standard',
|
|
|
|
'version'=>'2.2'}},
|
|
|
|
'response'=>{'numFound'=>1,'start'=>0,'maxScore'=>0.67833745,'docs'=>[
|
|
|
|
{
|
|
|
|
'name'=>'guido von rossum',
|
|
|
|
'id'=>'123',
|
|
|
|
'timestamp'=>'2007-01-16T09:55:30.589Z',
|
|
|
|
'score'=>0.67833745}]
|
|
|
|
}}
|
|
|
|
RUBY_CODE
|
|
|
|
conn = Solr::Connection.new 'http://localhost:9999'
|
|
|
|
set_post_return(ruby_code)
|
|
|
|
response = conn.send(Solr::Request::Standard.new(:query => 'foo'))
|
|
|
|
assert_equal true, response.ok?
|
|
|
|
assert response.query_time
|
|
|
|
assert_equal 1, response.total_hits
|
|
|
|
assert_equal 0, response.start
|
|
|
|
assert_equal 0.67833745, response.max_score
|
|
|
|
assert_equal 1, response.hits.length
|
|
|
|
end
|
|
|
|
|
|
|
|
def test_iteration
|
|
|
|
ruby_code =
|
|
|
|
<<RUBY_CODE
|
|
|
|
{
|
|
|
|
'responseHeader'=>{
|
|
|
|
'status'=>0,
|
|
|
|
'QTime'=>0,
|
|
|
|
'params'=>{
|
|
|
|
'wt'=>'ruby',
|
|
|
|
'rows'=>'10',
|
|
|
|
'explainOther'=>'',
|
|
|
|
'start'=>'0',
|
|
|
|
'hl.fl'=>'',
|
|
|
|
'indent'=>'on',
|
|
|
|
'q'=>'guido',
|
|
|
|
'fl'=>'*,score',
|
|
|
|
'qt'=>'standard',
|
|
|
|
'version'=>'2.2'}},
|
|
|
|
'response'=>{'numFound'=>22,'start'=>0,'maxScore'=>0.53799295,'docs'=>[
|
|
|
|
{
|
|
|
|
'name'=>'guido von rossum the 0',
|
|
|
|
'id'=>'0',
|
|
|
|
'score'=>0.53799295},
|
|
|
|
{
|
|
|
|
'name'=>'guido von rossum the 1',
|
|
|
|
'id'=>'1',
|
|
|
|
'score'=>0.53799295},
|
|
|
|
{
|
|
|
|
'name'=>'guido von rossum the 2',
|
|
|
|
'id'=>'2',
|
|
|
|
'score'=>0.53799295},
|
|
|
|
{
|
|
|
|
'name'=>'guido von rossum the 3',
|
|
|
|
'id'=>'3',
|
|
|
|
'score'=>0.53799295},
|
|
|
|
{
|
|
|
|
'name'=>'guido von rossum the 4',
|
|
|
|
'id'=>'4',
|
|
|
|
'score'=>0.53799295},
|
|
|
|
{
|
|
|
|
'name'=>'guido von rossum the 5',
|
|
|
|
'id'=>'5',
|
|
|
|
'score'=>0.53799295},
|
|
|
|
{
|
|
|
|
'name'=>'guido von rossum the 6',
|
|
|
|
'id'=>'6',
|
|
|
|
'score'=>0.53799295},
|
|
|
|
{
|
|
|
|
'name'=>'guido von rossum the 7',
|
|
|
|
'id'=>'7',
|
|
|
|
'score'=>0.53799295},
|
|
|
|
{
|
|
|
|
'name'=>'guido von rossum the 8',
|
|
|
|
'id'=>'8',
|
|
|
|
'score'=>0.53799295},
|
|
|
|
{
|
|
|
|
'name'=>'guido von rossum the 9',
|
|
|
|
'id'=>'9',
|
|
|
|
'score'=>0.53799295}]
|
|
|
|
}}
|
|
|
|
RUBY_CODE
|
|
|
|
conn = Solr::Connection.new 'http://localhost:9999'
|
|
|
|
set_post_return(ruby_code)
|
|
|
|
|
|
|
|
count = 0
|
|
|
|
conn.query('foo') do |hit|
|
|
|
|
assert_equal "guido von rossum the #{count}", hit['name']
|
|
|
|
count += 1
|
|
|
|
end
|
|
|
|
|
|
|
|
assert_equal 10, count
|
|
|
|
end
|
2007-01-24 10:23:55 -05:00
|
|
|
|
|
|
|
def test_facets
|
|
|
|
ruby_code =
|
|
|
|
<<RUBY_CODE
|
|
|
|
{
|
|
|
|
'responseHeader'=>{
|
|
|
|
'status'=>0,
|
|
|
|
'QTime'=>1897,
|
|
|
|
'params'=>{
|
|
|
|
'facet.limit'=>'20',
|
|
|
|
'wt'=>'ruby',
|
|
|
|
'rows'=>'0',
|
|
|
|
'facet'=>'true',
|
|
|
|
'facet.mincount'=>'1',
|
|
|
|
'facet.field'=>[
|
|
|
|
'subject_genre_facet',
|
|
|
|
'subject_geographic_facet',
|
|
|
|
'subject_format_facet',
|
|
|
|
'subject_era_facet',
|
|
|
|
'subject_topic_facet'],
|
|
|
|
'indent'=>'true',
|
|
|
|
'fl'=>'*,score',
|
|
|
|
'q'=>'[* TO *]',
|
|
|
|
'qt'=>'standard',
|
|
|
|
'facet.sort'=>'true'}},
|
|
|
|
'response'=>{'numFound'=>49999,'start'=>0,'maxScore'=>1.0,'docs'=>[]
|
|
|
|
},
|
|
|
|
'facet_counts'=>{
|
|
|
|
'facet_queries'=>{},
|
|
|
|
'facet_fields'=>{
|
2007-02-06 05:34:44 -05:00
|
|
|
'subject_genre_facet'=>[
|
|
|
|
'Biography.',2605,
|
|
|
|
'Congresses.',1837,
|
|
|
|
'Bibliography.',672,
|
|
|
|
'Exhibitions.',642,
|
|
|
|
'Periodicals.',615,
|
|
|
|
'Sources.',485]}}
|
2007-01-24 10:23:55 -05:00
|
|
|
}
|
|
|
|
RUBY_CODE
|
|
|
|
set_post_return(ruby_code)
|
|
|
|
conn = Solr::Connection.new "http://localhost:9999"
|
|
|
|
response = conn.query('foo')
|
|
|
|
facets = response.field_facets('subject_genre_facet')
|
2007-02-06 05:34:44 -05:00
|
|
|
assert_equal 2605, facets[0].value
|
|
|
|
assert_equal 485, facets[5].value
|
2007-01-24 10:23:55 -05:00
|
|
|
end
|
2007-01-16 17:02:13 -05:00
|
|
|
|
|
|
|
end
|
|
|
|
|