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
4a16523d
Commit
4a16523d
authored
Dec 31, 2017
by
Markus Kalkbrenner
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
added missing spellcheck parameters, started reducing code redundancy
parent
706ec745
Changes
8
Hide whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
564 additions
and
881 deletions
+564
-881
library/QueryType/Select/Query/Component/Spellcheck.php
library/QueryType/Select/Query/Component/Spellcheck.php
+3
-314
library/QueryType/Select/Query/Component/Suggester.php
library/QueryType/Select/Query/Component/Suggester.php
+4
-316
library/QueryType/Spellcheck/Query.php
library/QueryType/Spellcheck/Query.php
+2
-125
library/QueryType/Spellcheck/QueryTrait.php
library/QueryType/Spellcheck/QueryTrait.php
+364
-0
library/QueryType/Spellcheck/RequestBuilder.php
library/QueryType/Spellcheck/RequestBuilder.php
+14
-1
library/QueryType/Suggester/Query.php
library/QueryType/Suggester/Query.php
+2
-125
library/QueryType/Suggester/QueryTrait.php
library/QueryType/Suggester/QueryTrait.php
+173
-0
tests/QueryType/Spellcheck/RequestBuilderTest.php
tests/QueryType/Spellcheck/RequestBuilderTest.php
+2
-0
No files found.
library/QueryType/Select/Query/Component/Spellcheck.php
View file @
4a16523d
...
@@ -43,6 +43,7 @@ namespace Solarium\QueryType\Select\Query\Component;
...
@@ -43,6 +43,7 @@ namespace Solarium\QueryType\Select\Query\Component;
use
Solarium\QueryType\Select\Query\Query
as
SelectQuery
;
use
Solarium\QueryType\Select\Query\Query
as
SelectQuery
;
use
Solarium\QueryType\Select\RequestBuilder\Component\Spellcheck
as
RequestBuilder
;
use
Solarium\QueryType\Select\RequestBuilder\Component\Spellcheck
as
RequestBuilder
;
use
Solarium\QueryType\Select\ResponseParser\Component\Spellcheck
as
ResponseParser
;
use
Solarium\QueryType\Select\ResponseParser\Component\Spellcheck
as
ResponseParser
;
use
Solarium\QueryType\Spellcheck\QueryTrait
;
/**
/**
* Spellcheck component.
* Spellcheck component.
...
@@ -51,12 +52,8 @@ use Solarium\QueryType\Select\ResponseParser\Component\Spellcheck as ResponsePar
...
@@ -51,12 +52,8 @@ use Solarium\QueryType\Select\ResponseParser\Component\Spellcheck as ResponsePar
*/
*/
class
Spellcheck
extends
AbstractComponent
class
Spellcheck
extends
AbstractComponent
{
{
/**
* Used to further customize collation parameters.
use
QueryTrait
;
*
* @var array
*/
protected
$collateParams
=
array
();
/**
/**
* Get component type.
* Get component type.
...
@@ -105,312 +102,4 @@ class Spellcheck extends AbstractComponent
...
@@ -105,312 +102,4 @@ class Spellcheck extends AbstractComponent
return
$this
->
setOption
(
'query'
,
trim
(
$query
));
return
$this
->
setOption
(
'query'
,
trim
(
$query
));
}
}
/**
* Get query option.
*
* @return string|null
*/
public
function
getQuery
()
{
return
$this
->
getOption
(
'query'
);
}
/**
* Set build option.
*
* Build the spellcheck?
*
* @param boolean $build
*
* @return self Provides fluent interface
*/
public
function
setBuild
(
$build
)
{
return
$this
->
setOption
(
'build'
,
$build
);
}
/**
* Get build option.
*
* @return boolean|null
*/
public
function
getBuild
()
{
return
$this
->
getOption
(
'build'
);
}
/**
* Set reload option.
*
* Reload the dictionary?
*
* @param boolean $reload
*
* @return self Provides fluent interface
*/
public
function
setReload
(
$reload
)
{
return
$this
->
setOption
(
'reload'
,
$reload
);
}
/**
* Get fragsize option.
*
* @return boolean|null
*/
public
function
getReload
()
{
return
$this
->
getOption
(
'reload'
);
}
/**
* Set dictionary option.
*
* The name of the dictionary to use
*
* @param string $dictionary
*
* @return self Provides fluent interface
*/
public
function
setDictionary
(
$dictionary
)
{
return
$this
->
setOption
(
'dictionary'
,
$dictionary
);
}
/**
* Get dictionary option.
*
* @return string|null
*/
public
function
getDictionary
()
{
return
$this
->
getOption
(
'dictionary'
);
}
/**
* Set count option.
*
* The maximum number of suggestions to return
*
* @param int $count
*
* @return self Provides fluent interface
*/
public
function
setCount
(
$count
)
{
return
$this
->
setOption
(
'count'
,
$count
);
}
/**
* Get count option.
*
* @return int|null
*/
public
function
getCount
()
{
return
$this
->
getOption
(
'count'
);
}
/**
* Set onlyMorePopular option.
*
* Only return suggestions that result in more hits for the query than the existing query
*
* @param boolean $onlyMorePopular
*
* @return self Provides fluent interface
*/
public
function
setOnlyMorePopular
(
$onlyMorePopular
)
{
return
$this
->
setOption
(
'onlymorepopular'
,
$onlyMorePopular
);
}
/**
* Get onlyMorePopular option.
*
* @return boolean|null
*/
public
function
getOnlyMorePopular
()
{
return
$this
->
getOption
(
'onlymorepopular'
);
}
/**
* Set extendedResults option.
*
* @param boolean $extendedResults
*
* @return self Provides fluent interface
*/
public
function
setExtendedResults
(
$extendedResults
)
{
return
$this
->
setOption
(
'extendedresults'
,
$extendedResults
);
}
/**
* Get extendedResults option.
*
* @return boolean|null
*/
public
function
getExtendedResults
()
{
return
$this
->
getOption
(
'extendedresults'
);
}
/**
* Set collate option.
*
* @param boolean $collate
*
* @return self Provides fluent interface
*/
public
function
setCollate
(
$collate
)
{
return
$this
->
setOption
(
'collate'
,
$collate
);
}
/**
* Get collate option.
*
* @return boolean|null
*/
public
function
getCollate
()
{
return
$this
->
getOption
(
'collate'
);
}
/**
* Set maxCollations option.
*
* @param int $maxCollations
*
* @return self Provides fluent interface
*/
public
function
setMaxCollations
(
$maxCollations
)
{
return
$this
->
setOption
(
'maxcollations'
,
$maxCollations
);
}
/**
* Get maxCollations option.
*
* @return int|null
*/
public
function
getMaxCollations
()
{
return
$this
->
getOption
(
'maxcollations'
);
}
/**
* Set maxCollationTries option.
*
* @param string $maxCollationTries
*
* @return self Provides fluent interface
*/
public
function
setMaxCollationTries
(
$maxCollationTries
)
{
return
$this
->
setOption
(
'maxcollationtries'
,
$maxCollationTries
);
}
/**
* Get maxCollationTries option.
*
* @return string|null
*/
public
function
getMaxCollationTries
()
{
return
$this
->
getOption
(
'maxcollationtries'
);
}
/**
* Set maxCollationEvaluations option.
*
* @param int $maxCollationEvaluations
*
* @return self Provides fluent interface
*/
public
function
setMaxCollationEvaluations
(
$maxCollationEvaluations
)
{
return
$this
->
setOption
(
'maxcollationevaluations'
,
$maxCollationEvaluations
);
}
/**
* Get maxCollationEvaluations option.
*
* @return int|null
*/
public
function
getMaxCollationEvaluations
()
{
return
$this
->
getOption
(
'maxcollationevaluations'
);
}
/**
* Set collateExtendedResults option.
*
* @param string $collateExtendedResults
*
* @return self Provides fluent interface
*/
public
function
setCollateExtendedResults
(
$collateExtendedResults
)
{
return
$this
->
setOption
(
'collateextendedresults'
,
$collateExtendedResults
);
}
/**
* Get collateExtendedResults option.
*
* @return string|null
*/
public
function
getCollateExtendedResults
()
{
return
$this
->
getOption
(
'collateextendedresults'
);
}
/**
* Set accuracy option.
*
* @param float $accuracy
*
* @return self Provides fluent interface
*/
public
function
setAccuracy
(
$accuracy
)
{
return
$this
->
setOption
(
'accuracy'
,
$accuracy
);
}
/**
* Get accuracy option.
*
* @return float|null
*/
public
function
getAccuracy
()
{
return
$this
->
getOption
(
'accuracy'
);
}
/**
* Set a collation param.
*
* @param string $param
* @param mixed $value
*
* @return self Provides fluent interface
*/
public
function
setCollateParam
(
$param
,
$value
)
{
$this
->
collateParams
[
$param
]
=
$value
;
return
$this
;
}
/**
* Returns the array of collate params.
*
* @return array
*/
public
function
getCollateParams
()
{
return
$this
->
collateParams
;
}
}
}
library/QueryType/Select/Query/Component/Suggester.php
View file @
4a16523d
...
@@ -43,20 +43,16 @@ namespace Solarium\QueryType\Select\Query\Component;
...
@@ -43,20 +43,16 @@ namespace Solarium\QueryType\Select\Query\Component;
use
Solarium\QueryType\Select\Query\Query
as
SelectQuery
;
use
Solarium\QueryType\Select\Query\Query
as
SelectQuery
;
use
Solarium\QueryType\Select\RequestBuilder\Component\Spellcheck
as
RequestBuilder
;
use
Solarium\QueryType\Select\RequestBuilder\Component\Spellcheck
as
RequestBuilder
;
use
Solarium\QueryType\Select\ResponseParser\Component\Spellcheck
as
ResponseParser
;
use
Solarium\QueryType\Select\ResponseParser\Component\Spellcheck
as
ResponseParser
;
use
Solarium\QueryType\Suggester\QueryTrait
;
/**
/**
* Spellcheck component.
* Spellcheck component.
*
*
* @link http://wiki.apache.org/solr/SpellcheckComponent
* @link http://wiki.apache.org/solr/SpellcheckComponent
*/
*/
class
S
pellcheck
extends
AbstractComponent
class
S
uggester
extends
AbstractComponent
{
{
/**
use
QueryTrait
;
* Used to further customize collation parameters.
*
* @var array
*/
protected
$collateParams
=
array
();
/**
/**
* Get component type.
* Get component type.
...
@@ -65,7 +61,7 @@ class Spellcheck extends AbstractComponent
...
@@ -65,7 +61,7 @@ class Spellcheck extends AbstractComponent
*/
*/
public
function
getType
()
public
function
getType
()
{
{
return
SelectQuery
::
COMPONENT_S
PELLCHECK
;
return
SelectQuery
::
COMPONENT_S
UGGESTER
;
}
}
/**
/**
...
@@ -105,312 +101,4 @@ class Spellcheck extends AbstractComponent
...
@@ -105,312 +101,4 @@ class Spellcheck extends AbstractComponent
return
$this
->
setOption
(
'query'
,
trim
(
$query
));
return
$this
->
setOption
(
'query'
,
trim
(
$query
));
}
}
/**
* Get query option.
*
* @return string|null
*/
public
function
getQuery
()
{
return
$this
->
getOption
(
'query'
);
}
/**
* Set build option.
*
* Build the spellcheck?
*
* @param boolean $build
*
* @return self Provides fluent interface
*/
public
function
setBuild
(
$build
)
{
return
$this
->
setOption
(
'build'
,
$build
);
}
/**
* Get build option.
*
* @return boolean|null
*/
public
function
getBuild
()
{
return
$this
->
getOption
(
'build'
);
}
/**
* Set reload option.
*
* Reload the dictionary?
*
* @param boolean $reload
*
* @return self Provides fluent interface
*/
public
function
setReload
(
$reload
)
{
return
$this
->
setOption
(
'reload'
,
$reload
);
}
/**
* Get fragsize option.
*
* @return boolean|null
*/
public
function
getReload
()
{
return
$this
->
getOption
(
'reload'
);
}
/**
* Set dictionary option.
*
* The name of the dictionary to use
*
* @param string $dictionary
*
* @return self Provides fluent interface
*/
public
function
setDictionary
(
$dictionary
)
{
return
$this
->
setOption
(
'dictionary'
,
$dictionary
);
}
/**
* Get dictionary option.
*
* @return string|null
*/
public
function
getDictionary
()
{
return
$this
->
getOption
(
'dictionary'
);
}
/**
* Set count option.
*
* The maximum number of suggestions to return
*
* @param int $count
*
* @return self Provides fluent interface
*/
public
function
setCount
(
$count
)
{
return
$this
->
setOption
(
'count'
,
$count
);
}
/**
* Get count option.
*
* @return int|null
*/
public
function
getCount
()
{
return
$this
->
getOption
(
'count'
);
}
/**
* Set onlyMorePopular option.
*
* Only return suggestions that result in more hits for the query than the existing query
*
* @param boolean $onlyMorePopular
*
* @return self Provides fluent interface
*/
public
function
setOnlyMorePopular
(
$onlyMorePopular
)
{
return
$this
->
setOption
(
'onlymorepopular'
,
$onlyMorePopular
);
}
/**
* Get onlyMorePopular option.
*
* @return boolean|null
*/
public
function
getOnlyMorePopular
()
{
return
$this
->
getOption
(
'onlymorepopular'
);
}
/**
* Set extendedResults option.
*
* @param boolean $extendedResults
*
* @return self Provides fluent interface
*/
public
function
setExtendedResults
(
$extendedResults
)
{
return
$this
->
setOption
(
'extendedresults'
,
$extendedResults
);
}
/**
* Get extendedResults option.
*
* @return boolean|null
*/
public
function
getExtendedResults
()
{
return
$this
->
getOption
(
'extendedresults'
);
}
/**
* Set collate option.
*
* @param boolean $collate
*
* @return self Provides fluent interface
*/
public
function
setCollate
(
$collate
)
{
return
$this
->
setOption
(
'collate'
,
$collate
);
}
/**
* Get collate option.
*
* @return boolean|null
*/
public
function
getCollate
()
{
return
$this
->
getOption
(
'collate'
);
}
/**
* Set maxCollations option.
*
* @param int $maxCollations
*
* @return self Provides fluent interface
*/
public
function
setMaxCollations
(
$maxCollations
)
{
return
$this
->
setOption
(
'maxcollations'
,
$maxCollations
);
}
/**
* Get maxCollations option.
*
* @return int|null
*/
public
function
getMaxCollations
()
{
return
$this
->
getOption
(
'maxcollations'
);
}
/**
* Set maxCollationTries option.
*
* @param string $maxCollationTries
*
* @return self Provides fluent interface
*/
public
function
setMaxCollationTries
(
$maxCollationTries
)
{
return
$this
->
setOption
(
'maxcollationtries'
,
$maxCollationTries
);
}
/**
* Get maxCollationTries option.
*
* @return string|null
*/
public
function
getMaxCollationTries
()
{
return
$this
->
getOption
(
'maxcollationtries'
);
}
/**
* Set maxCollationEvaluations option.
*
* @param int $maxCollationEvaluations
*
* @return self Provides fluent interface
*/
public
function
setMaxCollationEvaluations
(
$maxCollationEvaluations
)
{
return
$this
->
setOption
(
'maxcollationevaluations'
,
$maxCollationEvaluations
);
}
/**
* Get maxCollationEvaluations option.
*
* @return int|null
*/
public
function
getMaxCollationEvaluations
()
{
return
$this
->
getOption
(
'maxcollationevaluations'
);
}
/**
* Set collateExtendedResults option.
*
* @param string $collateExtendedResults
*
* @return self Provides fluent interface
*/
public
function
setCollateExtendedResults
(
$collateExtendedResults
)
{
return
$this
->
setOption
(
'collateextendedresults'
,
$collateExtendedResults
);
}
/**
* Get collateExtendedResults option.
*
* @return string|null
*/
public
function
getCollateExtendedResults
()
{
return
$this
->
getOption
(
'collateextendedresults'
);
}
/**
* Set accuracy option.
*
* @param float $accuracy
*
* @return self Provides fluent interface
*/
public
function
setAccuracy
(
$accuracy
)
{
return
$this
->
setOption
(
'accuracy'
,
$accuracy
);
}
/**
* Get accuracy option.
*
* @return float|null
*/
public
function
getAccuracy
()
{
return
$this
->
getOption
(
'accuracy'
);
}
/**
* Set a collation param.
*
* @param string $param
* @param mixed $value
*
* @return self Provides fluent interface
*/
public
function
setCollateParam
(
$param
,
$value
)
{
$this
->
collateParams
[
$param
]
=
$value
;
return
$this
;
}
/**
* Returns the array of collate params.
*
* @return array
*/
public
function
getCollateParams
()
{
return
$this
->
collateParams
;
}
}
}
library/QueryType/Spellcheck/Query.php
View file @
4a16523d
...
@@ -50,6 +50,8 @@ use Solarium\Core\Client\Client;
...
@@ -50,6 +50,8 @@ use Solarium\Core\Client\Client;
*/
*/
class
Query
extends
BaseQuery
class
Query
extends
BaseQuery
{
{
use
QueryTrait
;
/**
/**
* Default options.
* Default options.
*
*
...
@@ -107,129 +109,4 @@ class Query extends BaseQuery
...
@@ -107,129 +109,4 @@ class Query extends BaseQuery
return
$this
->
setOption
(
'query'
,
$query
);
return
$this
->
setOption
(
'query'
,
$query
);
}
}
/**
* Get query option.
*
* @return string|null
*/
public
function
getQuery
()
{
return
$this
->
getOption
(
'query'
);
}
/**
* Set dictionary option.
*
* The name of the dictionary to use
*
* @param string $dictionary
*
* @return self Provides fluent interface
*/
public
function
setDictionary
(
$dictionary
)
{
return
$this
->
setOption
(
'dictionary'
,
$dictionary
);
}
/**
* Get dictionary option.
*
* @return string|null
*/
public
function
getDictionary
()
{
return
$this
->
getOption
(
'dictionary'
);
}
/**
* Set count option.
*
* The maximum number of suggestions to return
*
* @param int $count
*
* @return self Provides fluent interface
*/
public
function
setCount
(
$count
)
{
return
$this
->
setOption
(
'count'
,
$count
);
}
/**
* Get count option.
*
* @return int|null
*/
public
function
getCount
()
{
return
$this
->
getOption
(
'count'
);
}
/**
* Set onlyMorePopular option.
*
* Only return suggestions that result in more hits for the query than the existing query
*
* @param boolean $onlyMorePopular
*
* @return self Provides fluent interface
*/
public
function
setOnlyMorePopular
(
$onlyMorePopular
)
{
return
$this
->
setOption
(
'onlymorepopular'
,
$onlyMorePopular
);
}
/**
* Get onlyMorePopular option.
*
* @return boolean|null
*/
public
function
getOnlyMorePopular
()
{
return
$this
->
getOption
(
'onlymorepopular'
);
}
/**
* Set collate option.
*
* @param boolean $collate
*
* @return self Provides fluent interface
*/
public
function
setCollate
(
$collate
)
{
return
$this
->
setOption
(
'collate'
,
$collate
);
}
/**
* Get collate option.
*
* @return boolean|null
*/
public
function
getCollate
()
{
return
$this
->
getOption
(
'collate'
);
}
/**
* Set build option.
*
* @param boolean $build
*
* @return self Provides fluent interface
*/
public
function
setBuild
(
$build
)
{
return
$this
->
setOption
(
'build'
,
$build
);
}
/**
* Get build option.
*
* @return boolean|null
*/
public
function
getBuild
()
{
return
$this
->
getOption
(
'build'
);
}
}
}
library/QueryType/Spellcheck/QueryTrait.php
0 → 100644
View file @
4a16523d
<?php
/**
* Copyright 2011 Bas de Nooijer. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* 1. Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
*
* 2. Redistributions in binary form must reproduce the above copyright notice,
* this listof conditions and the following disclaimer in the documentation
* and/or other materials provided with the distribution.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDER AND CONTRIBUTORS "AS IS"
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGE.
*
* The views and conclusions contained in the software and documentation are
* those of the authors and should not be interpreted as representing official
* policies, either expressed or implied, of the copyright holder.
*
* @copyright Copyright 2011 Bas de Nooijer <solarium@raspberry.nl>
* @license http://github.com/basdenooijer/solarium/raw/master/COPYING
*
* @link http://www.solarium-project.org/
*/
/**
* @namespace
*/
namespace
Solarium\QueryType\Spellcheck
;
/**
* Spellcheck Query Trait.
*/
trait
QueryTrait
{
/**
* Used to further customize collation parameters.
*
* @var array
*/
protected
$collateParams
=
array
();
/**
* Get query option.
*
* @return string|null
*/
public
function
getQuery
()
{
return
$this
->
getOption
(
'query'
);
}
/**
* Set build option.
*
* Build the spellcheck?
*
* @param boolean $build
*
* @return self Provides fluent interface
*/
public
function
setBuild
(
$build
)
{
return
$this
->
setOption
(
'build'
,
$build
);
}
/**
* Get build option.
*
* @return boolean|null
*/
public
function
getBuild
()
{
return
$this
->
getOption
(
'build'
);
}
/**
* Set reload option.
*
* Reload the dictionary?
*
* @param boolean $reload
*
* @return self Provides fluent interface
*/
public
function
setReload
(
$reload
)
{
return
$this
->
setOption
(
'reload'
,
$reload
);
}
/**
* Get fragsize option.
*
* @return boolean|null
*/
public
function
getReload
()
{
return
$this
->
getOption
(
'reload'
);
}
/**
* Set dictionary option.
*
* The name of the dictionary to use
*
* @param string $dictionary
*
* @return self Provides fluent interface
*/
public
function
setDictionary
(
$dictionary
)
{
return
$this
->
setOption
(
'dictionary'
,
$dictionary
);
}
/**
* Get dictionary option.
*
* @return string|null
*/
public
function
getDictionary
()
{
return
$this
->
getOption
(
'dictionary'
);
}
/**
* Set count option.
*
* The maximum number of suggestions to return
*
* @param int $count
*
* @return self Provides fluent interface
*/
public
function
setCount
(
$count
)
{
return
$this
->
setOption
(
'count'
,
$count
);
}
/**
* Get count option.
*
* @return int|null
*/
public
function
getCount
()
{
return
$this
->
getOption
(
'count'
);
}
/**
* Set onlyMorePopular option.
*
* Only return suggestions that result in more hits for the query than the existing query
*
* @param boolean $onlyMorePopular
*
* @return self Provides fluent interface
*/
public
function
setOnlyMorePopular
(
$onlyMorePopular
)
{
return
$this
->
setOption
(
'onlymorepopular'
,
$onlyMorePopular
);
}
/**
* Get onlyMorePopular option.
*
* @return boolean|null
*/
public
function
getOnlyMorePopular
()
{
return
$this
->
getOption
(
'onlymorepopular'
);
}
/**
* Set extendedResults option.
*
* @param boolean $extendedResults
*
* @return self Provides fluent interface
*/
public
function
setExtendedResults
(
$extendedResults
)
{
return
$this
->
setOption
(
'extendedresults'
,
$extendedResults
);
}
/**
* Get extendedResults option.
*
* @return boolean|null
*/
public
function
getExtendedResults
()
{
return
$this
->
getOption
(
'extendedresults'
);
}
/**
* Set collate option.
*
* @param boolean $collate
*
* @return self Provides fluent interface
*/
public
function
setCollate
(
$collate
)
{
return
$this
->
setOption
(
'collate'
,
$collate
);
}
/**
* Get collate option.
*
* @return boolean|null
*/
public
function
getCollate
()
{
return
$this
->
getOption
(
'collate'
);
}
/**
* Set maxCollations option.
*
* @param int $maxCollations
*
* @return self Provides fluent interface
*/
public
function
setMaxCollations
(
$maxCollations
)
{
return
$this
->
setOption
(
'maxcollations'
,
$maxCollations
);
}
/**
* Get maxCollations option.
*
* @return int|null
*/
public
function
getMaxCollations
()
{
return
$this
->
getOption
(
'maxcollations'
);
}
/**
* Set maxCollationTries option.
*
* @param string $maxCollationTries
*
* @return self Provides fluent interface
*/
public
function
setMaxCollationTries
(
$maxCollationTries
)
{
return
$this
->
setOption
(
'maxcollationtries'
,
$maxCollationTries
);
}
/**
* Get maxCollationTries option.
*
* @return string|null
*/
public
function
getMaxCollationTries
()
{
return
$this
->
getOption
(
'maxcollationtries'
);
}
/**
* Set maxCollationEvaluations option.
*
* @param int $maxCollationEvaluations
*
* @return self Provides fluent interface
*/
public
function
setMaxCollationEvaluations
(
$maxCollationEvaluations
)
{
return
$this
->
setOption
(
'maxcollationevaluations'
,
$maxCollationEvaluations
);
}
/**
* Get maxCollationEvaluations option.
*
* @return int|null
*/
public
function
getMaxCollationEvaluations
()
{
return
$this
->
getOption
(
'maxcollationevaluations'
);
}
/**
* Set collateExtendedResults option.
*
* @param string $collateExtendedResults
*
* @return self Provides fluent interface
*/
public
function
setCollateExtendedResults
(
$collateExtendedResults
)
{
return
$this
->
setOption
(
'collateextendedresults'
,
$collateExtendedResults
);
}
/**
* Get collateExtendedResults option.
*
* @return string|null
*/
public
function
getCollateExtendedResults
()
{
return
$this
->
getOption
(
'collateextendedresults'
);
}
/**
* Set accuracy option.
*
* @param float $accuracy
*
* @return self Provides fluent interface
*/
public
function
setAccuracy
(
$accuracy
)
{
return
$this
->
setOption
(
'accuracy'
,
$accuracy
);
}
/**
* Get accuracy option.
*
* @return float|null
*/
public
function
getAccuracy
()
{
return
$this
->
getOption
(
'accuracy'
);
}
/**
* Set a collation param.
*
* @param string $param
* @param mixed $value
*
* @return self Provides fluent interface
*/
public
function
setCollateParam
(
$param
,
$value
)
{
$this
->
collateParams
[
$param
]
=
$value
;
return
$this
;
}
/**
* Returns the array of collate params.
*
* @return array
*/
public
function
getCollateParams
()
{
return
$this
->
collateParams
;
}
}
library/QueryType/Spellcheck/RequestBuilder.php
View file @
4a16523d
...
@@ -59,13 +59,26 @@ class RequestBuilder extends BaseRequestBuilder
...
@@ -59,13 +59,26 @@ class RequestBuilder extends BaseRequestBuilder
public
function
build
(
QueryInterface
$query
)
public
function
build
(
QueryInterface
$query
)
{
{
$request
=
parent
::
build
(
$query
);
$request
=
parent
::
build
(
$query
);
// enable spellcheck
$request
->
addParam
(
'spellcheck'
,
'true'
);
$request
->
addParam
(
'spellcheck'
,
'true'
);
$request
->
addParam
(
'spellcheck.q'
,
$query
->
getQuery
());
$request
->
addParam
(
'spellcheck.q'
,
$query
->
getQuery
());
$request
->
addParam
(
'spellcheck.build'
,
$query
->
getBuild
());
$request
->
addParam
(
'spellcheck.reload'
,
$query
->
getReload
());
$request
->
addParam
(
'spellcheck.dictionary'
,
$query
->
getDictionary
());
$request
->
addParam
(
'spellcheck.dictionary'
,
$query
->
getDictionary
());
$request
->
addParam
(
'spellcheck.count'
,
$query
->
getCount
());
$request
->
addParam
(
'spellcheck.count'
,
$query
->
getCount
());
$request
->
addParam
(
'spellcheck.onlyMorePopular'
,
$query
->
getOnlyMorePopular
());
$request
->
addParam
(
'spellcheck.onlyMorePopular'
,
$query
->
getOnlyMorePopular
());
$request
->
addParam
(
'spellcheck.extendedResults'
,
$query
->
getExtendedResults
());
$request
->
addParam
(
'spellcheck.collate'
,
$query
->
getCollate
());
$request
->
addParam
(
'spellcheck.collate'
,
$query
->
getCollate
());
$request
->
addParam
(
'spellcheck.build'
,
$query
->
getBuild
());
$request
->
addParam
(
'spellcheck.maxCollations'
,
$query
->
getMaxCollations
());
$request
->
addParam
(
'spellcheck.maxCollationTries'
,
$query
->
getMaxCollationTries
());
$request
->
addParam
(
'spellcheck.maxCollationEvaluations'
,
$query
->
getMaxCollationEvaluations
());
$request
->
addParam
(
'spellcheck.collateExtendedResults'
,
$query
->
getCollateExtendedResults
());
$request
->
addParam
(
'spellcheck.accuracy'
,
$query
->
getAccuracy
());
foreach
(
$query
->
getCollateParams
()
as
$param
=>
$value
)
{
$request
->
addParam
(
'spellcheck.collateParam.'
.
$param
,
$value
);
}
return
$request
;
return
$request
;
}
}
...
...
library/QueryType/Suggester/Query.php
View file @
4a16523d
...
@@ -50,6 +50,8 @@ use Solarium\Core\Client\Client;
...
@@ -50,6 +50,8 @@ use Solarium\Core\Client\Client;
*/
*/
class
Query
extends
BaseQuery
class
Query
extends
BaseQuery
{
{
use
QueryTrait
;
/**
/**
* Default options.
* Default options.
*
*
...
@@ -109,129 +111,4 @@ class Query extends BaseQuery
...
@@ -109,129 +111,4 @@ class Query extends BaseQuery
return
$this
->
setOption
(
'query'
,
$query
);
return
$this
->
setOption
(
'query'
,
$query
);
}
}
/**
* Get query option.
*
* @return string|null
*/
public
function
getQuery
()
{
return
$this
->
getOption
(
'query'
);
}
/**
* Set dictionary option.
*
* The name of the dictionary to use
*
* @param string $dictionary
*
* @return self Provides fluent interface
*/
public
function
setDictionary
(
$dictionary
)
{
return
$this
->
setOption
(
'dictionary'
,
$dictionary
);
}
/**
* Get dictionary option.
*
* @return string|null
*/
public
function
getDictionary
()
{
return
$this
->
getOption
(
'dictionary'
);
}
/**
* Set count option.
*
* The maximum number of suggestions to return
*
* @param int $count
*
* @return self Provides fluent interface
*/
public
function
setCount
(
$count
)
{
return
$this
->
setOption
(
'count'
,
$count
);
}
/**
* Get count option.
*
* @return int|null
*/
public
function
getCount
()
{
return
$this
->
getOption
(
'count'
);
}
/**
* Set cfq option.
*
* A Context Filter Query used to filter suggestions based on the context field, if supported by the suggester.
*
* @param string $cfq
*
* @return self Provides fluent interface
*/
public
function
setContextFilterQuery
(
$cfq
)
{
return
$this
->
setOption
(
'cfq'
,
$cfq
);
}
/**
* Get cfq option.
*
* @return string|null
*/
public
function
getContextFilterQuery
()
{
return
$this
->
getOption
(
'cfq'
);
}
/**
* Set build option.
*
* @param boolean $build
*
* @return self Provides fluent interface
*/
public
function
setBuild
(
$build
)
{
return
$this
->
setOption
(
'build'
,
$build
);
}
/**
* Get build option.
*
* @return boolean|null
*/
public
function
getBuild
()
{
return
$this
->
getOption
(
'build'
);
}
/**
* Set reload option.
*
* @param boolean $build
*
* @return self Provides fluent interface
*/
public
function
setReload
(
$reload
)
{
return
$this
->
setOption
(
'reload'
,
$reload
);
}
/**
* Get reload option.
*
* @return boolean|null
*/
public
function
getReload
()
{
return
$this
->
getOption
(
'reload'
);
}
}
}
library/QueryType/Suggester/QueryTrait.php
0 → 100644
View file @
4a16523d
<?php
/**
* Copyright 2011 Markus Kalkbrenner. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* 1. Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
*
* 2. Redistributions in binary form must reproduce the above copyright notice,
* this listof conditions and the following disclaimer in the documentation
* and/or other materials provided with the distribution.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDER AND CONTRIBUTORS "AS IS"
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGE.
*
* The views and conclusions contained in the software and documentation are
* those of the authors and should not be interpreted as representing official
* policies, either expressed or implied, of the copyright holder.
*
* @copyright Copyright 2011 Bas de Nooijer <solarium@raspberry.nl>
* @license http://github.com/basdenooijer/solarium/raw/master/COPYING
*
* @link http://www.solarium-project.org/
*/
/**
* @namespace
*/
namespace
Solarium\QueryType\Suggester
;
/**
* Suggester Query Trait.
*/
trait
QueryTrait
{
/**
* Get query option.
*
* @return string|null
*/
public
function
getQuery
()
{
return
$this
->
getOption
(
'query'
);
}
/**
* Set dictionary option.
*
* The name of the dictionary to use
*
* @param string $dictionary
*
* @return self Provides fluent interface
*/
public
function
setDictionary
(
$dictionary
)
{
return
$this
->
setOption
(
'dictionary'
,
$dictionary
);
}
/**
* Get dictionary option.
*
* @return string|null
*/
public
function
getDictionary
()
{
return
$this
->
getOption
(
'dictionary'
);
}
/**
* Set count option.
*
* The maximum number of suggestions to return
*
* @param int $count
*
* @return self Provides fluent interface
*/
public
function
setCount
(
$count
)
{
return
$this
->
setOption
(
'count'
,
$count
);
}
/**
* Get count option.
*
* @return int|null
*/
public
function
getCount
()
{
return
$this
->
getOption
(
'count'
);
}
/**
* Set cfq option.
*
* A Context Filter Query used to filter suggestions based on the context field, if supported by the suggester.
*
* @param string $cfq
*
* @return self Provides fluent interface
*/
public
function
setContextFilterQuery
(
$cfq
)
{
return
$this
->
setOption
(
'cfq'
,
$cfq
);
}
/**
* Get cfq option.
*
* @return string|null
*/
public
function
getContextFilterQuery
()
{
return
$this
->
getOption
(
'cfq'
);
}
/**
* Set build option.
*
* @param boolean $build
*
* @return self Provides fluent interface
*/
public
function
setBuild
(
$build
)
{
return
$this
->
setOption
(
'build'
,
$build
);
}
/**
* Get build option.
*
* @return boolean|null
*/
public
function
getBuild
()
{
return
$this
->
getOption
(
'build'
);
}
/**
* Set reload option.
*
* @param boolean $build
*
* @return self Provides fluent interface
*/
public
function
setReload
(
$reload
)
{
return
$this
->
setOption
(
'reload'
,
$reload
);
}
/**
* Get reload option.
*
* @return boolean|null
*/
public
function
getReload
()
{
return
$this
->
getOption
(
'reload'
);
}
}
tests/QueryType/Spellcheck/RequestBuilderTest.php
View file @
4a16523d
...
@@ -60,6 +60,7 @@ class RequestBuilderTest extends \PHPUnit_Framework_TestCase
...
@@ -60,6 +60,7 @@ class RequestBuilderTest extends \PHPUnit_Framework_TestCase
$this
->
query
->
setDictionary
(
'suggest'
);
$this
->
query
->
setDictionary
(
'suggest'
);
$this
->
query
->
setQuery
(
'ap ip'
);
$this
->
query
->
setQuery
(
'ap ip'
);
$this
->
query
->
setOnlyMorePopular
(
true
);
$this
->
query
->
setOnlyMorePopular
(
true
);
$this
->
query
->
setAccuracy
(
0.45
);
$request
=
$this
->
builder
->
build
(
$this
->
query
);
$request
=
$this
->
builder
->
build
(
$this
->
query
);
...
@@ -75,6 +76,7 @@ class RequestBuilderTest extends \PHPUnit_Framework_TestCase
...
@@ -75,6 +76,7 @@ class RequestBuilderTest extends \PHPUnit_Framework_TestCase
'wt'
=>
'json'
,
'wt'
=>
'json'
,
'json.nl'
=>
'flat'
,
'json.nl'
=>
'flat'
,
'omitHeader'
=>
'true'
,
'omitHeader'
=>
'true'
,
'spellcheck.accuracy'
=>
0.45
,
),
),
$request
->
getParams
()
$request
->
getParams
()
);
);
...
...
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