Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Submit feedback
Sign in
Toggle navigation
S
solarium
Project overview
Project overview
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Commits
Open sidebar
common
solarium
Commits
52b21b5c
Commit
52b21b5c
authored
Nov 27, 2011
by
Bas de Nooijer
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Added query default operator and query default field settings
parent
275056b6
Changes
4
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
92 additions
and
0 deletions
+92
-0
library/Solarium/Client/RequestBuilder/Select.php
library/Solarium/Client/RequestBuilder/Select.php
+2
-0
library/Solarium/Query/Select.php
library/Solarium/Query/Select.php
+54
-0
tests/Solarium/Client/RequestBuilder/SelectTest.php
tests/Solarium/Client/RequestBuilder/SelectTest.php
+17
-0
tests/Solarium/Query/SelectTest.php
tests/Solarium/Query/SelectTest.php
+19
-0
No files found.
library/Solarium/Client/RequestBuilder/Select.php
View file @
52b21b5c
...
@@ -62,6 +62,8 @@ class Solarium_Client_RequestBuilder_Select extends Solarium_Client_RequestBuild
...
@@ -62,6 +62,8 @@ class Solarium_Client_RequestBuilder_Select extends Solarium_Client_RequestBuild
$request
->
addParam
(
'rows'
,
$query
->
getRows
());
$request
->
addParam
(
'rows'
,
$query
->
getRows
());
$request
->
addParam
(
'fl'
,
implode
(
','
,
$query
->
getFields
()));
$request
->
addParam
(
'fl'
,
implode
(
','
,
$query
->
getFields
()));
$request
->
addParam
(
'wt'
,
'json'
);
$request
->
addParam
(
'wt'
,
'json'
);
$request
->
addParam
(
'q.op'
,
$query
->
getQueryDefaultOperator
());
$request
->
addParam
(
'df'
,
$query
->
getQueryDefaultField
());
// add sort fields to request
// add sort fields to request
$sort
=
array
();
$sort
=
array
();
...
...
library/Solarium/Query/Select.php
View file @
52b21b5c
...
@@ -59,6 +59,16 @@ class Solarium_Query_Select extends Solarium_Query
...
@@ -59,6 +59,16 @@ class Solarium_Query_Select extends Solarium_Query
*/
*/
const
SORT_ASC
=
'asc'
;
const
SORT_ASC
=
'asc'
;
/**
* Solr query operator AND
*/
const
QUERY_OPERATOR_AND
=
'AND'
;
/**
* Solr query operator OR
*/
const
QUERY_OPERATOR_OR
=
'OR'
;
/**
/**
* Query component facetset
* Query component facetset
*/
*/
...
@@ -266,6 +276,50 @@ class Solarium_Query_Select extends Solarium_Query
...
@@ -266,6 +276,50 @@ class Solarium_Query_Select extends Solarium_Query
return
$this
->
getOption
(
'query'
);
return
$this
->
getOption
(
'query'
);
}
}
/**
* Set default query operator
*
* Use one of the constants as value
*
* @param string $operator
* @return Solarium_Query_Select Provides fluent interface
*/
public
function
setQueryDefaultOperator
(
$operator
)
{
return
$this
->
_setOption
(
'querydefaultoperator'
,
$operator
);
}
/**
* Get the default query operator
*
* @return null|string
*/
public
function
getQueryDefaultOperator
()
{
return
$this
->
getOption
(
'querydefaultoperator'
);
}
/**
* Set default query field
*
* @param string $field
* @return Solarium_Query_Select Provides fluent interface
*/
public
function
setQueryDefaultField
(
$field
)
{
return
$this
->
_setOption
(
'querydefaultfield'
,
$field
);
}
/**
* Get the default query field
*
* @return null|string
*/
public
function
getQueryDefaultField
()
{
return
$this
->
getOption
(
'querydefaultfield'
);
}
/**
/**
* Set the start offset
* Set the start offset
*
*
...
...
tests/Solarium/Client/RequestBuilder/SelectTest.php
View file @
52b21b5c
...
@@ -89,6 +89,23 @@ class Solarium_Client_RequestBuilder_SelectTest extends PHPUnit_Framework_TestCa
...
@@ -89,6 +89,23 @@ class Solarium_Client_RequestBuilder_SelectTest extends PHPUnit_Framework_TestCa
);
);
}
}
public
function
testSelectUrlWithQueryDefaultFieldAndOperator
()
{
$this
->
_query
->
setQueryDefaultField
(
'mydefault'
);
$this
->
_query
->
setQueryDefaultOperator
(
Solarium_Query_Select
::
QUERY_OPERATOR_AND
);
$request
=
$this
->
_builder
->
build
(
$this
->
_query
);
$this
->
assertEquals
(
null
,
$request
->
getRawData
()
);
$this
->
assertEquals
(
'select?q=*:*&start=0&rows=10&fl=*,score&wt=json&q.op=AND&df=mydefault'
,
urldecode
(
$request
->
getUri
())
);
}
public
function
testSelectUrlWithSortAndFilters
()
public
function
testSelectUrlWithSortAndFilters
()
{
{
$this
->
_query
->
addSort
(
'id'
,
Solarium_Query_Select
::
SORT_ASC
);
$this
->
_query
->
addSort
(
'id'
,
Solarium_Query_Select
::
SORT_ASC
);
...
...
tests/Solarium/Query/SelectTest.php
View file @
52b21b5c
...
@@ -32,6 +32,9 @@
...
@@ -32,6 +32,9 @@
class
Solarium_Query_SelectTest
extends
PHPUnit_Framework_TestCase
class
Solarium_Query_SelectTest
extends
PHPUnit_Framework_TestCase
{
{
/**
* @var Solarium_Query_Select
*/
protected
$_query
;
protected
$_query
;
public
function
setUp
()
public
function
setUp
()
...
@@ -62,6 +65,22 @@ class Solarium_Query_SelectTest extends PHPUnit_Framework_TestCase
...
@@ -62,6 +65,22 @@ class Solarium_Query_SelectTest extends PHPUnit_Framework_TestCase
$this
->
assertEquals
(
'id:678'
,
$this
->
_query
->
getQuery
());
$this
->
assertEquals
(
'id:678'
,
$this
->
_query
->
getQuery
());
}
}
public
function
testSetAndGetQueryDefaultOperator
()
{
$value
=
Solarium_Query_Select
::
QUERY_OPERATOR_AND
;
$this
->
_query
->
setQueryDefaultOperator
(
$value
);
$this
->
assertEquals
(
$value
,
$this
->
_query
->
getQueryDefaultOperator
());
}
public
function
testSetAndGetQueryDefaultField
()
{
$value
=
'mydefault'
;
$this
->
_query
->
setQueryDefaultField
(
$value
);
$this
->
assertEquals
(
$value
,
$this
->
_query
->
getQueryDefaultField
());
}
public
function
testSetAndGetResultClass
()
public
function
testSetAndGetResultClass
()
{
{
$this
->
_query
->
setResultClass
(
'MyResult'
);
$this
->
_query
->
setResultClass
(
'MyResult'
);
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment