Skip to content
GitLab
Explore
Sign in
Vendor
search-es
Compare revisions
1c6e35e2973f60dfcb045142c11d3ff15ec938d5 to 45efa25e0da443944dbd396ae10efb21cb8211fc
Hide whitespace changes
Inline
Side-by-side
src/ElasticSearch/Order/OrderField.php
deleted
100644 → 0
View file @
1c6e35e2
<?php
namespace
IQDEV\ElasticSearch\Order
;
class
OrderField
extends
Order
{
}
src/ElasticSearch/Order/OrderType.php
deleted
100644 → 0
View file @
1c6e35e2
<?php
namespace
IQDEV\ElasticSearch\Order
;
abstract
class
OrderType
{
protected
static
string
$code
;
public
static
function
getType
():
string
{
return
static
::
$code
;
}
}
src/ElasticSearch/Result.php
0 → 100644
View file @
45efa25e
<?php
namespace
IQDEV\ElasticSearch
;
use
IQDEV\ElasticSearch\Document\ProductCollection
;
use
IQDEV\ElasticSearch\Facet\Collection\FacetResultCollection
;
class
Result
{
private
ProductCollection
$products
;
private
FacetResultCollection
$facets
;
private
int
$total
=
0
;
public
function
__construct
()
{
$this
->
products
=
new
ProductCollection
();
$this
->
facets
=
new
FacetResultCollection
();
}
public
function
setTotal
(
int
$total
):
void
{
$this
->
total
=
$total
;
}
public
function
getTotal
():
int
{
return
$this
->
total
;
}
public
function
getProducts
():
ProductCollection
{
return
$this
->
products
;
}
public
function
getFacets
():
FacetResultCollection
{
return
$this
->
facets
;
}
}
src/ElasticSearch/Search/Aggs/Aggs.php
View file @
45efa25e
...
...
@@ -13,11 +13,10 @@ final class Aggs implements Esable
private
?Nested
$nested
=
null
;
private
?Terms
$terms
=
null
;
private
?Stats
$stats
=
null
;
private
string
$key
;
public
function
__construct
(
string
$key
)
{
$this
->
key
=
$key
;
public
function
__construct
(
private
string
$key
)
{
}
public
function
addAggs
(
Aggs
$aggs
):
self
...
...
src/ElasticSearch/Search/Aggs/Stats.php
View file @
45efa25e
...
...
@@ -6,11 +6,9 @@ use IQDEV\ElasticSearch\Esable;
final
class
Stats
implements
Esable
{
private
string
$field
;
public
function
__construct
(
string
$field
)
{
$this
->
field
=
$field
;
public
function
__construct
(
private
string
$field
)
{
}
public
function
es
():
array
...
...
src/ElasticSearch/Search/Aggs/Terms.php
View file @
45efa25e
...
...
@@ -7,11 +7,10 @@ use IQDEV\ElasticSearch\Esable;
final
class
Terms
implements
Esable
{
private
array
$options
=
[];
private
string
$field
;
public
function
__construct
(
string
$field
)
{
$this
->
field
=
$field
;
public
function
__construct
(
private
string
$field
)
{
}
public
function
setSize
(
int
$size
):
self
...
...
src/ElasticSearch/Search/BoolQuery/FilterKeywordFacet.php
View file @
45efa25e
...
...
@@ -7,15 +7,14 @@ use IQDEV\ElasticSearch\Search\Nested;
final
class
FilterKeywordFacet
implements
Esable
{
public
string
$key
;
/** @var string|string[] */
public
$value
;
public
function
__construct
(
string
$key
,
$value
)
{
$this
->
key
=
$key
;
$this
->
value
=
$value
;
/**
* @param string $key
* @param string|array<string> $value
*/
public
function
__construct
(
public
string
$key
,
public
string
|
array
$value
)
{
}
public
function
es
():
array
...
...
@@ -25,9 +24,8 @@ final class FilterKeywordFacet implements Esable
$nested
=
new
Nested
();
$query
=
new
Query
();
$query
->
filter
(
new
Terms
(
$path
.
'.facet_code'
,
$this
->
key
))
->
filter
(
new
Terms
(
$path
.
'.facet_value'
,
$this
->
value
));
$query
->
getFilter
()
->
add
(
new
Terms
(
$path
.
'.facet_code'
,
$this
->
key
));
$query
->
getFilter
()
->
add
(
new
Terms
(
$path
.
'.facet_value'
,
$this
->
value
));
$nested
->
setPath
(
$path
)
...
...
src/ElasticSearch/Search/BoolQuery/FilterNumberFacet.php
View file @
45efa25e
...
...
@@ -3,19 +3,16 @@
namespace
IQDEV\ElasticSearch\Search\BoolQuery
;
use
IQDEV\ElasticSearch\Esable
;
use
IQDEV\ElasticSearch\Criteria\Filter\FilterOperator
;
use
IQDEV\ElasticSearch\Search\Nested
;
use
IQDEV\Search\Filter\FilterOperator
;
final
class
FilterNumberFacet
implements
Esable
{
public
string
$key
;
public
array
$conditions
;
public
function
__construct
(
string
$key
,
array
$conditions
)
{
$this
->
key
=
$key
;
$this
->
conditions
=
$conditions
;
public
function
__construct
(
public
string
$key
,
public
array
$conditions
)
{
}
public
function
es
():
array
...
...
@@ -26,32 +23,22 @@ final class FilterNumberFacet implements Esable
$query
=
new
Query
();
$query
->
f
ilter
(
new
Stats
(
$path
.
'.facet_code'
,
$this
->
key
));
->
getF
ilter
(
)
->
add
(
new
Stats
(
$path
.
'.facet_code'
,
$this
->
key
));
$conditions
=
[];
foreach
(
$this
->
conditions
as
$operator
=>
$value
)
{
switch
(
$operator
)
{
case
FilterOperator
::
GTE
:
$key
=
'gte'
;
break
;
case
FilterOperator
::
LTE
:
$key
=
'lte'
;
break
;
case
FilterOperator
::
GT
:
$key
=
'gt'
;
break
;
case
FilterOperator
::
LT
:
$key
=
'lt'
;
break
;
default
:
$key
=
null
;
break
;
}
$key
=
in_array
(
FilterOperator
::
from
(
$operator
),
[
FilterOperator
::
GTE
,
FilterOperator
::
LTE
,
FilterOperator
::
GT
,
FilterOperator
::
LT
,
])
?
$operator
:
null
;
if
(
isset
(
$key
))
{
$conditions
[
$key
]
=
$value
;
}
}
$query
->
f
ilter
(
new
Stats
(
$path
.
'.facet_value'
,
$conditions
));
$query
->
getF
ilter
(
)
->
add
(
new
Stats
(
$path
.
'.facet_value'
,
$conditions
));
$nested
->
setPath
(
$path
)
...
...
src/ElasticSearch/Search/BoolQuery/Query.php
View file @
45efa25e
...
...
@@ -32,43 +32,34 @@ final class Query implements Esable
* @param Terms|Nested $item
* @return $this
*/
public
function
m
atch
(
$item
):
self
public
function
getM
atch
(
):
BoolQueryCollection
{
$this
->
match
->
add
(
$item
);
return
$this
;
return
$this
->
match
;
}
/**
* @param Terms|Nested $item
* @return $this
*/
public
function
must
(
$item
):
self
public
function
getMust
():
BoolQueryCollection
{
$this
->
must
->
add
(
$item
);
return
$this
;
return
$this
->
must
;
}
public
function
f
ilter
(
Esable
$item
):
self
public
function
getF
ilter
(
):
BoolQueryCollection
{
$this
->
filter
->
add
(
$item
);
return
$this
;
return
$this
->
filter
;
}
public
function
s
hould
(
Esable
$i
te
m
):
self
public
function
s
etFilter
(
BoolQueryCollection
$fil
te
r
):
BoolQueryCollection
{
$this
->
should
->
add
(
$item
);
return
$this
;
return
$this
->
filter
;
}
public
function
mustNot
(
Esable
$item
):
self
public
function
getShould
():
BoolQueryCollection
{
$this
->
mustNot
->
add
(
$item
);
return
$this
->
should
;
}
return
$this
;
public
function
getMustNot
():
BoolQueryCollection
{
return
$this
->
mustNot
;
}
public
function
isEmpty
():
bool
...
...
@@ -127,4 +118,34 @@ final class Query implements Esable
],
];
}
public
function
modify
(
Query
$another
):
self
{
foreach
(
$another
->
getMust
()
as
$item
)
{
$this
->
getMust
()
->
add
(
$item
);
}
foreach
(
$another
->
getFilter
()
as
$item
)
{
$this
->
getFilter
()
->
add
(
$item
);
}
foreach
(
$another
->
getShould
()
as
$item
)
{
$this
->
getShould
()
->
add
(
$item
);
}
foreach
(
$another
->
getMustNot
()
as
$item
)
{
$this
->
getMustNot
()
->
add
(
$item
);
}
foreach
(
$another
->
getMatch
()
as
$item
)
{
$this
->
getMatch
()
->
add
(
$item
);
}
return
$this
;
}
public
function
__clone
():
void
{
$this
->
must
=
clone
$this
->
must
;
$this
->
should
=
clone
$this
->
should
;
$this
->
filter
=
clone
$this
->
filter
;
$this
->
mustNot
=
clone
$this
->
mustNot
;
$this
->
match
=
clone
$this
->
match
;
}
}
src/ElasticSearch/Search/BoolQuery/Stats.php
View file @
45efa25e
...
...
@@ -6,19 +6,14 @@ use IQDEV\ElasticSearch\Esable;
final
class
Stats
implements
Esable
{
private
string
$key
;
/**
* @var string|float|string[]|float[]
* @param string $key
* @param string|float|array<string|float> $value
*/
private
$value
;
/**
* @param string|float|string[]|float[] $value
*/
public
function
__construct
(
string
$key
,
$value
)
{
$this
->
key
=
$key
;
$this
->
value
=
$value
;
public
function
__construct
(
private
string
$key
,
private
string
|
float
|
array
$value
)
{
}
public
function
es
():
array
...
...
src/ElasticSearch/Search/BoolQuery/Terms.php
View file @
45efa25e
...
...
@@ -6,19 +6,14 @@ use IQDEV\ElasticSearch\Esable;
final
class
Terms
implements
Esable
{
private
string
$key
;
/**
* @var string|float|string[]|float[]
* @param string $key
* @param string|float|bool|array<string|float> $value
*/
private
$value
;
/**
* @param string|float|string[]|float[] $value
*/
public
function
__construct
(
string
$key
,
$value
)
{
$this
->
key
=
$key
;
$this
->
value
=
$value
;
public
function
__construct
(
private
string
$key
,
private
mixed
$value
)
{
}
public
function
es
():
array
...
...
src/ElasticSearch/Search/Pagination.php
View file @
45efa25e
...
...
@@ -6,13 +6,10 @@ use IQDEV\ElasticSearch\Esable;
class
Pagination
implements
Esable
{
private
?int
$size
;
private
?int
$from
;
public
function
__construct
(
?int
$size
=
null
,
?int
$from
=
null
)
{
$this
->
size
=
$size
;
$this
->
from
=
$from
;
public
function
__construct
(
private
?int
$size
=
null
,
private
?int
$from
=
null
)
{
}
public
function
es
():
array
...
...
src/ElasticSearch/Search/Request.php
View file @
45efa25e
...
...
@@ -3,7 +3,8 @@
namespace
IQDEV\ElasticSearch\Search
;
use
IQDEV\ElasticSearch\Esable
;
use
IQDEV\ElasticSearch\Order\OrderCollection
;
use
IQDEV\ElasticSearch\Criteria\Match\QueryMatchCollection
;
use
IQDEV\ElasticSearch\Criteria\Order\OrderCollection
;
use
IQDEV\ElasticSearch\Search\Aggs\AggsCollection
;
use
IQDEV\ElasticSearch\Search\BoolQuery\Query
;
...
...
@@ -14,7 +15,7 @@ final class Request implements Esable
private
?AggsCollection
$aggs
=
null
;
private
?Pagination
$pagination
=
null
;
private
?OrderCollection
$sort
=
null
;
private
array
$match
=
[]
;
private
?QueryMatchCollection
$matchCollection
=
null
;
private
?array
$source
=
null
;
public
function
setPagination
(
?Pagination
$pagination
):
self
...
...
@@ -33,6 +34,13 @@ final class Request implements Esable
return
$this
->
query
;
}
public
function
setQuery
(
Query
$query
):
self
{
$this
->
query
=
$query
;
return
$this
;
}
public
function
getPostFilter
():
Query
{
if
(
null
===
$this
->
postFilter
)
{
...
...
@@ -42,6 +50,13 @@ final class Request implements Esable
return
$this
->
postFilter
;
}
public
function
setPostFilter
(
Query
$query
):
self
{
$this
->
postFilter
=
$query
;
return
$this
;
}
public
function
getAggs
():
AggsCollection
{
if
(
null
===
$this
->
aggs
)
{
...
...
@@ -51,16 +66,25 @@ final class Request implements Esable
return
$this
->
aggs
;
}
public
function
g
et
Pagination
():
?Pagination
public
function
s
et
Aggs
(
AggsCollection
$aggs
):
self
{
return
$this
->
pagination
;
$this
->
aggs
=
$aggs
;
return
$this
;
}
public
function
addMatch
(
string
$key
,
array
$param
):
self
public
function
getQueryMatch
():
QueryMatchCollection
{
$this
->
match
[
$key
]
=
$param
;
if
(
null
===
$this
->
matchCollection
)
{
$this
->
matchCollection
=
new
QueryMatchCollection
();
}
return
$this
;
return
$this
->
matchCollection
;
}
public
function
getPagination
():
?Pagination
{
return
$this
->
pagination
;
}
public
function
setSource
(
array
$s
):
self
...
...
@@ -95,10 +119,8 @@ final class Request implements Esable
$request
[
'query'
]
=
$this
->
query
->
es
()[
'query'
];
}
if
(
false
===
empty
(
$this
->
match
))
{
foreach
(
$this
->
match
as
$key
=>
$value
)
{
$request
[
'query'
][
'match'
][
$key
]
=
$value
;
}
if
(
$this
->
matchCollection
&&
false
===
$this
->
matchCollection
->
isEmpty
())
{
$request
[
'query'
][
'match'
]
=
$this
->
matchCollection
->
es
();
}
if
(
$this
->
aggs
)
{
...
...
src/ElasticSearch/SearchService.php
View file @
45efa25e
...
...
@@ -5,24 +5,20 @@ namespace IQDEV\ElasticSearch;
use
Elastic\Elasticsearch\Client
;
use
Elastic\Elasticsearch\Exception\ClientResponseException
;
use
Elastic\Elasticsearch\Exception\ServerResponseException
;
use
IQDEV\ElasticSearch\Converter\CriteriaToEsRequest
;
use
IQDEV\ElasticSearch\Converter\EsResponseToResult
;
use
IQDEV\Search\Criteria
;
use
IQDEV\Search\Result
;
use
IQDEV\ElasticSearch\Converter\Request\CriteriaToRequest
;
use
IQDEV\ElasticSearch\Converter\Result\EsResponseToResult
;
use
IQDEV\ElasticSearch\Criteria\Criteria
;
class
SearchService
implements
\IQDEV\Search\SearchServic
e
class
SearchService
implements
Searchabl
e
{
private
Client
$esClient
;
private
Configuration
$configuration
;
private
CriteriaToEsRequest
$criteriaToEsRequest
;
private
CriteriaToRequest
$criteriaToRequest
;
private
EsResponseToResult
$esResponseToResult
;
public
function
__construct
(
Client
$esClient
,
Configuration
$configuration
)
{
$this
->
esClient
=
$esClient
;
$this
->
configuration
=
$configuration
;
$this
->
criteriaToEsRequest
=
new
CriteriaToEsRequest
();
public
function
__construct
(
private
Client
$esClient
,
private
Configuration
$configuration
)
{
$this
->
criteriaToRequest
=
new
CriteriaToRequest
(
$this
->
configuration
);
$this
->
esResponseToResult
=
new
EsResponseToResult
();
}
...
...
@@ -32,7 +28,7 @@ class SearchService implements \IQDEV\Search\SearchService
*/
public
function
search
(
Criteria
$criteria
):
Result
{
$request
=
$this
->
criteriaTo
Es
Request
->
fromCriteria
(
$criteria
);
$request
=
$this
->
criteriaToRequest
->
fromCriteria
(
$criteria
);
$response
=
$this
->
esClient
->
search
([
'index'
=>
$this
->
configuration
->
getIndexName
(),
...
...
src/ElasticSearch/Searchable.php
0 → 100644
View file @
45efa25e
<?php
namespace
IQDEV\ElasticSearch
;
use
IQDEV\ElasticSearch\Criteria\Criteria
;
interface
Searchable
{
/**
* @param Criteria $criteria
*
* @return Result
*/
public
function
search
(
Criteria
$criteria
):
Result
;
}
tests/F
I
lter/AggsTest.php
→
tests/F
i
lter/AggsTest.php
View file @
45efa25e
...
...
@@ -2,19 +2,20 @@
namespace
IQDEV\ElasticSearchTests\Filter
;
use
IQDEV\ElasticSearch\Criteria\Criteria
;
use
IQDEV\ElasticSearch\Criteria\Filter\Collection\FilterGroupCollection
;
use
IQDEV\ElasticSearch\Criteria\Filter\Field
;
use
IQDEV\ElasticSearch\Criteria\Filter\Filter
;
use
IQDEV\ElasticSearch\Criteria\Filter\FilterOperator
;
use
IQDEV\ElasticSearch\Criteria\Filter\LogicOperator
;
use
IQDEV\ElasticSearch\Criteria\Filter\Value\FilterKeyword
;
use
IQDEV\ElasticSearch\Criteria\Filter\Value\FilterNumber
;
use
IQDEV\ElasticSearch\Criteria\Query\SearchQuery
;
use
IQDEV\ElasticSearch\Criteria\Search\Search
;
use
IQDEV\ElasticSearch\Document\Property\Property
;
use
IQDEV\ElasticSearchTests\AbstractTestCase
;
use
IQDEV\ElasticSearchTests\Helpers\FormatData
;
use
IQDEV\ElasticSearchTests\Service\SearchClient
;
use
IQDEV\Search\Criteria
;
use
IQDEV\Search\Filter\Field
;
use
IQDEV\Search\Filter\Filter
;
use
IQDEV\Search\Filter\FilterGroupCollection
;
use
IQDEV\Search\Filter\FilterKeyword
;
use
IQDEV\Search\Filter\FilterNumber
;
use
IQDEV\Search\Filter\FilterOperator
;
use
IQDEV\Search\Filter\FilterType
;
use
IQDEV\Search\Filter\LogicOperator
;
use
IQDEV\Search\Query\SearchQuery
;
/**
* Тестирование агрегирующих функций
...
...
@@ -24,16 +25,11 @@ class AggsTest extends AbstractTestCase
public
function
testEmptyFilterByCategory
()
{
$criteria
=
new
Criteria
();
$criteria
->
filters
()
->
add
(
(
new
FilterGroupCollection
([
new
Filter
(
new
Field
(
'category_id'
),
new
FilterOperator
(
FilterOperator
::
EQ
),
new
FilterKeyword
(
't-short'
)
)
]))
->
setFilterType
(
FilterType
::
query
())
$criteria
->
getSearch
()
->
add
(
new
Search
(
new
Property
(
'category_id'
),
't-short'
,
),
);
$q
=
new
SearchQuery
(
$criteria
);
...
...
@@ -146,22 +142,17 @@ class AggsTest extends AbstractTestCase
public
function
testEmptyKeywordFilter
()
{
$criteria
=
new
Criteria
();
$criteria
->
filters
()
->
add
(
(
new
FilterGroupCollection
([
new
Filter
(
new
Field
(
'category_id'
),
new
FilterOperator
(
FilterOperator
::
EQ
),
new
FilterKeyword
(
't-short'
)
)
]))
->
setFilterType
(
FilterType
::
query
())
$criteria
->
getSearch
()
->
add
(
new
Search
(
new
Property
(
'category_id'
),
't-short'
,
),
);
$criteria
->
f
ilters
()
->
add
(
new
FilterGroupCollection
([
$criteria
->
getF
ilters
()
->
add
(
new
FilterGroupCollection
([
new
Filter
(
new
Field
(
'color'
),
new
FilterOperator
(
FilterOperator
::
EQ
)
,
FilterOperator
::
EQ
,
new
FilterKeyword
(
'white'
)
)
]));
...
...
@@ -275,22 +266,16 @@ class AggsTest extends AbstractTestCase
public
function
testRangeFilter
()
{
$criteria
=
new
Criteria
();
$criteria
->
filters
()
->
add
(
(
new
FilterGroupCollection
([
new
Filter
(
new
Field
(
'category_id'
),
new
FilterOperator
(
FilterOperator
::
EQ
),
new
FilterKeyword
(
't-short'
)
)
]))
->
setFilterType
(
FilterType
::
query
())
$criteria
->
getSearch
()
->
add
(
new
Search
(
new
Property
(
'category_id'
),
't-short'
,
),
);
$criteria
->
filters
()
->
add
(
new
FilterGroupCollection
([
$criteria
->
getFilters
()
->
add
(
new
FilterGroupCollection
([
new
Filter
(
new
Field
(
'price'
),
new
FilterOperator
(
FilterOperator
::
LTE
)
,
FilterOperator
::
LTE
,
new
FilterNumber
(
104.50
)
)
]));
...
...
@@ -403,30 +388,25 @@ class AggsTest extends AbstractTestCase
public
function
testCombineFilter
()
{
$criteria
=
new
Criteria
();
$criteria
->
filters
()
->
add
(
(
new
FilterGroupCollection
([
new
Filter
(
new
Field
(
'category_id'
),
new
FilterOperator
(
FilterOperator
::
EQ
),
new
FilterKeyword
(
't-short'
)
)
]))
->
setFilterType
(
FilterType
::
query
())
$criteria
->
getSearch
()
->
add
(
new
Search
(
new
Property
(
'category_id'
),
't-short'
,
),
);
$criteria
->
f
ilters
()
->
add
(
new
FilterGroupCollection
([
$criteria
->
getF
ilters
()
->
add
(
new
FilterGroupCollection
([
new
Filter
(
new
Field
(
'color'
),
new
FilterOperator
(
FilterOperator
::
EQ
)
,
FilterOperator
::
EQ
,
new
FilterKeyword
(
'black'
)
)
]));
$criteria
->
f
ilters
()
->
add
(
new
FilterGroupCollection
([
$criteria
->
getF
ilters
()
->
add
(
new
FilterGroupCollection
([
new
Filter
(
new
Field
(
'price'
),
new
FilterOperator
(
FilterOperator
::
LTE
)
,
FilterOperator
::
LTE
,
new
FilterNumber
(
104
)
)
]));
...
...
@@ -538,30 +518,25 @@ class AggsTest extends AbstractTestCase
public
function
testCombineFilterTwo
()
{
$criteria
=
new
Criteria
();
$criteria
->
filters
()
->
add
(
(
new
FilterGroupCollection
([
new
Filter
(
new
Field
(
'category_id'
),
new
FilterOperator
(
FilterOperator
::
EQ
),
new
FilterKeyword
(
't-short'
)
)
]))
->
setFilterType
(
FilterType
::
query
())
$criteria
->
getSearch
()
->
add
(
new
Search
(
new
Property
(
'category_id'
),
't-short'
,
),
);
$criteria
->
f
ilters
()
->
add
(
new
FilterGroupCollection
([
$criteria
->
getF
ilters
()
->
add
(
new
FilterGroupCollection
([
new
Filter
(
new
Field
(
'color'
),
new
FilterOperator
(
FilterOperator
::
EQ
)
,
FilterOperator
::
EQ
,
new
FilterKeyword
(
'red'
)
)
]));
$criteria
->
f
ilters
()
->
add
(
new
FilterGroupCollection
([
$criteria
->
getF
ilters
()
->
add
(
new
FilterGroupCollection
([
new
Filter
(
new
Field
(
'price'
),
new
FilterOperator
(
FilterOperator
::
LTE
)
,
FilterOperator
::
LTE
,
new
FilterNumber
(
105
)
)
]));
...
...
@@ -675,38 +650,33 @@ class AggsTest extends AbstractTestCase
public
function
testKeywordFilter
()
{
$criteria
=
new
Criteria
();
$criteria
->
filters
()
->
add
(
(
new
FilterGroupCollection
([
new
Filter
(
new
Field
(
'category_id'
),
new
FilterOperator
(
FilterOperator
::
EQ
),
new
FilterKeyword
(
't-short'
)
)
]))
->
setFilterType
(
FilterType
::
query
())
$criteria
->
getSearch
()
->
add
(
new
Search
(
new
Property
(
'category_id'
),
't-short'
,
),
);
$criteria
->
f
ilters
()
->
add
(
new
FilterGroupCollection
([
$criteria
->
getF
ilters
()
->
add
(
new
FilterGroupCollection
([
new
Filter
(
new
Field
(
'color'
),
new
FilterOperator
(
FilterOperator
::
EQ
)
,
FilterOperator
::
EQ
,
new
FilterKeyword
(
'white'
)
)
]));
$criteria
->
f
ilters
()
->
add
(
new
FilterGroupCollection
([
$criteria
->
getF
ilters
()
->
add
(
new
FilterGroupCollection
([
new
Filter
(
new
Field
(
'brand'
),
new
FilterOperator
(
FilterOperator
::
EQ
)
,
FilterOperator
::
EQ
,
new
FilterKeyword
(
'nike'
)
)
]));
$criteria
->
f
ilters
()
->
add
(
new
FilterGroupCollection
([
$criteria
->
getF
ilters
()
->
add
(
new
FilterGroupCollection
([
new
Filter
(
new
Field
(
'price'
),
new
FilterOperator
(
FilterOperator
::
GT
)
,
FilterOperator
::
GT
,
new
FilterNumber
(
100
)
)
]));
...
...
@@ -820,40 +790,35 @@ class AggsTest extends AbstractTestCase
public
function
testKeywordFilterTwo
()
{
$criteria
=
new
Criteria
();
$criteria
->
filters
()
->
add
(
(
new
FilterGroupCollection
([
new
Filter
(
new
Field
(
'category_id'
),
new
FilterOperator
(
FilterOperator
::
EQ
),
new
FilterKeyword
(
't-short'
)
)
]))
->
setFilterType
(
FilterType
::
query
())
$criteria
->
getSearch
()
->
add
(
new
Search
(
new
Property
(
'category_id'
),
't-short'
,
),
);
$criteria
->
f
ilters
()
->
add
(
new
FilterGroupCollection
([
$criteria
->
getF
ilters
()
->
add
(
new
FilterGroupCollection
([
new
Filter
(
new
Field
(
'color'
),
new
FilterOperator
(
FilterOperator
::
EQ
)
,
FilterOperator
::
EQ
,
new
FilterKeyword
(
'white'
)
)
]));
$criteria
->
f
ilters
()
->
add
(
$criteria
->
getF
ilters
()
->
add
(
(
new
FilterGroupCollection
([
new
Filter
(
new
Field
(
'brand'
),
new
FilterOperator
(
FilterOperator
::
EQ
)
,
FilterOperator
::
EQ
,
new
FilterKeyword
(
'nike'
)
),
new
Filter
(
new
Field
(
'brand'
),
new
FilterOperator
(
FilterOperator
::
EQ
)
,
FilterOperator
::
EQ
,
new
FilterKeyword
(
'reebok'
)
)
]))
->
setLogic
alType
(
LogicOperator
::
or
()
)
->
setLogic
Operator
(
LogicOperator
::
OR
)
);
...
...
tests/F
I
lter/CommonRangeKeywordsTest.php
→
tests/F
i
lter/CommonRangeKeywordsTest.php
View file @
45efa25e
<?php
namespace
IQDEV\ElasticSearchTests\FIlter
;
namespace
IQDEV\ElasticSearchTests\Filter
;
use
IQDEV\ElasticSearch\Criteria\Criteria
;
use
IQDEV\ElasticSearch\Criteria\Filter\Collection\FilterGroupCollection
;
use
IQDEV\ElasticSearch\Criteria\Filter\Field
;
use
IQDEV\ElasticSearch\Criteria\Filter\Filter
;
use
IQDEV\ElasticSearch\Criteria\Filter\FilterOperator
;
use
IQDEV\ElasticSearch\Criteria\Filter\Value\FilterKeyword
;
use
IQDEV\ElasticSearch\Criteria\Filter\Value\FilterNumber
;
use
IQDEV\ElasticSearch\Criteria\Query\SearchQuery
;
use
IQDEV\ElasticSearchTests\AbstractTestCase
;
use
IQDEV\ElasticSearchTests\Helpers\FormatData
;
use
IQDEV\ElasticSearchTests\Service\SearchClient
;
use
IQDEV\Search\Criteria
;
use
IQDEV\Search\Filter\Field
;
use
IQDEV\Search\Filter\Filter
;
use
IQDEV\Search\Filter\FilterGroupCollection
;
use
IQDEV\Search\Filter\FilterKeyword
;
use
IQDEV\Search\Filter\FilterNumber
;
use
IQDEV\Search\Filter\FilterOperator
;
use
IQDEV\Search\Query\SearchQuery
;
class
CommonRangeKeywordsTest
extends
AbstractTestCase
{
...
...
@@ -25,18 +25,18 @@ class CommonRangeKeywordsTest extends AbstractTestCase
{
$criteria
=
new
Criteria
();
$criteria
->
f
ilters
()
->
add
(
new
FilterGroupCollection
([
$criteria
->
getF
ilters
()
->
add
(
new
FilterGroupCollection
([
new
Filter
(
new
Field
(
'color'
),
new
FilterOperator
(
FilterOperator
::
EQ
)
,
FilterOperator
::
EQ
,
new
FilterKeyword
(
'red'
)
)
]));
$criteria
->
f
ilters
()
->
add
(
new
FilterGroupCollection
([
$criteria
->
getF
ilters
()
->
add
(
new
FilterGroupCollection
([
new
Filter
(
new
Field
(
'price'
),
new
FilterOperator
(
FilterOperator
::
GT
)
,
FilterOperator
::
GT
,
new
FilterNumber
(
102
)
)
]));
...
...
@@ -65,18 +65,18 @@ class CommonRangeKeywordsTest extends AbstractTestCase
{
$criteria
=
new
Criteria
();
$criteria
->
f
ilters
()
->
add
(
new
FilterGroupCollection
([
$criteria
->
getF
ilters
()
->
add
(
new
FilterGroupCollection
([
new
Filter
(
new
Field
(
'color'
),
new
FilterOperator
(
FilterOperator
::
EQ
)
,
FilterOperator
::
EQ
,
new
FilterKeyword
(
'red'
)
)
]));
$criteria
->
f
ilters
()
->
add
(
new
FilterGroupCollection
([
$criteria
->
getF
ilters
()
->
add
(
new
FilterGroupCollection
([
new
Filter
(
new
Field
(
'price'
),
new
FilterOperator
(
FilterOperator
::
LT
)
,
FilterOperator
::
LT
,
new
FilterNumber
(
102
)
)
]));
...
...
@@ -105,23 +105,23 @@ class CommonRangeKeywordsTest extends AbstractTestCase
{
$criteria
=
new
Criteria
();
$criteria
->
f
ilters
()
->
add
(
new
FilterGroupCollection
([
$criteria
->
getF
ilters
()
->
add
(
new
FilterGroupCollection
([
new
Filter
(
new
Field
(
'color'
),
new
FilterOperator
(
FilterOperator
::
EQ
)
,
FilterOperator
::
EQ
,
new
FilterKeyword
(
'red'
)
)
]));
$criteria
->
f
ilters
()
->
add
(
new
FilterGroupCollection
([
$criteria
->
getF
ilters
()
->
add
(
new
FilterGroupCollection
([
new
Filter
(
new
Field
(
'price'
),
new
FilterOperator
(
FilterOperator
::
GTE
)
,
FilterOperator
::
GTE
,
new
FilterNumber
(
101
)
),
new
Filter
(
new
Field
(
'price'
),
new
FilterOperator
(
FilterOperator
::
LTE
)
,
FilterOperator
::
LTE
,
new
FilterNumber
(
104
)
),
]));
...
...
tests/F
I
lter/IndexesTest.php
→
tests/F
i
lter/IndexesTest.php
View file @
45efa25e
...
...
@@ -4,14 +4,14 @@ namespace IQDEV\ElasticSearchTests\Filter;
use
Elastic\Elasticsearch\Client
;
use
IQDEV\ElasticSearch\Configuration
;
use
IQDEV\ElasticSearch\Converter\EsResponseToResult
;
use
IQDEV\ElasticSearch\Converter\
Result\
EsResponseToResult
;
use
IQDEV\ElasticSearch\Indexer\IndexRunner
;
use
IQDEV\ElasticSearchTests\AbstractTestCase
;
use
IQDEV\ElasticSearchTests\Config\ChangingStateConfiguration
;
use
IQDEV\ElasticSearchTests\Factory\ClientFactory
;
use
IQDEV\ElasticSearchTests\Helpers\FormatData
;
use
IQDEV\ElasticSearchTests\Helpers\TestIndexProvider
;
use
Psr\Log\
Test\Test
Logger
;
use
Psr\Log\
Null
Logger
;
class
IndexesTest
extends
AbstractTestCase
{
...
...
@@ -40,7 +40,7 @@ class IndexesTest extends AbstractTestCase
$this
->
indexRunner
=
new
IndexRunner
(
$this
->
esClient
,
$this
->
configuration
,
new
Test
Logger
()
new
Null
Logger
()
);
}
...
...
tests/F
I
lter/KeywordsTest.php
→
tests/F
i
lter/KeywordsTest.php
View file @
45efa25e
...
...
@@ -2,17 +2,18 @@
namespace
IQDEV\ElasticSearchTests\Filter
;
use
IQDEV\ElasticSearch\Criteria\Criteria
;
use
IQDEV\ElasticSearch\Criteria\Filter\Collection\FilterGroupCollection
;
use
IQDEV\ElasticSearch\Criteria\Filter\Field
;
use
IQDEV\ElasticSearch\Criteria\Filter\Filter
;
use
IQDEV\ElasticSearch\Criteria\Filter\FilterOperator
;
use
IQDEV\ElasticSearch\Criteria\Filter\Value\FilterKeyword
;
use
IQDEV\ElasticSearch\Criteria\Query\SearchQuery
;
use
IQDEV\ElasticSearch\Criteria\Search\Search
;
use
IQDEV\ElasticSearch\Document\Property\Property
;
use
IQDEV\ElasticSearchTests\AbstractTestCase
;
use
IQDEV\ElasticSearchTests\Helpers\FormatData
;
use
IQDEV\ElasticSearchTests\Service\SearchClient
;
use
IQDEV\Search\Criteria
;
use
IQDEV\Search\Filter\Field
;
use
IQDEV\Search\Filter\Filter
;
use
IQDEV\Search\Filter\FilterGroupCollection
;
use
IQDEV\Search\Filter\FilterKeyword
;
use
IQDEV\Search\Filter\FilterOperator
;
use
IQDEV\Search\Filter\FilterType
;
use
IQDEV\Search\Query\SearchQuery
;
class
KeywordsTest
extends
AbstractTestCase
{
...
...
@@ -25,10 +26,10 @@ class KeywordsTest extends AbstractTestCase
{
$criteria
=
new
Criteria
();
$criteria
->
f
ilters
()
->
add
(
new
FilterGroupCollection
([
$criteria
->
getF
ilters
()
->
add
(
new
FilterGroupCollection
([
new
Filter
(
new
Field
(
'color'
),
new
FilterOperator
(
FilterOperator
::
EQ
)
,
FilterOperator
::
EQ
,
new
FilterKeyword
(
''
)
)
]));
...
...
@@ -55,10 +56,10 @@ class KeywordsTest extends AbstractTestCase
{
$criteria
=
new
Criteria
();
$criteria
->
f
ilters
()
->
add
(
new
FilterGroupCollection
([
$criteria
->
getF
ilters
()
->
add
(
new
FilterGroupCollection
([
new
Filter
(
new
Field
(
'color'
),
new
FilterOperator
(
FilterOperator
::
EQ
)
,
FilterOperator
::
EQ
,
new
FilterKeyword
(
'red'
)
)
]));
...
...
@@ -87,22 +88,17 @@ class KeywordsTest extends AbstractTestCase
public
function
testExistByFilterAndCategory
():
void
{
$criteria
=
new
Criteria
();
$criteria
->
filters
()
->
add
(
(
new
FilterGroupCollection
([
new
Filter
(
new
Field
(
'category_id'
),
new
FilterOperator
(
FilterOperator
::
EQ
),
new
FilterKeyword
(
'shoes'
)
)
]))
->
setFilterType
(
FilterType
::
query
())
$criteria
->
getSearch
()
->
add
(
new
Search
(
new
Property
(
'category_id'
),
'shoes'
,
),
);
$criteria
->
f
ilters
()
->
add
(
new
FilterGroupCollection
([
$criteria
->
getF
ilters
()
->
add
(
new
FilterGroupCollection
([
new
Filter
(
new
Field
(
'color'
),
new
FilterOperator
(
FilterOperator
::
EQ
)
,
FilterOperator
::
EQ
,
new
FilterKeyword
(
'red'
)
)
]));
...
...
@@ -131,15 +127,15 @@ class KeywordsTest extends AbstractTestCase
{
$criteria
=
new
Criteria
();
$criteria
->
f
ilters
()
->
add
(
new
FilterGroupCollection
([
$criteria
->
getF
ilters
()
->
add
(
new
FilterGroupCollection
([
new
Filter
(
new
Field
(
'color'
),
new
FilterOperator
(
FilterOperator
::
EQ
)
,
FilterOperator
::
EQ
,
new
FilterKeyword
(
'red'
)
),
new
Filter
(
new
Field
(
'size'
),
new
FilterOperator
(
FilterOperator
::
EQ
)
,
FilterOperator
::
EQ
,
new
FilterKeyword
(
'xxl'
)
)
]));
...
...
@@ -166,15 +162,15 @@ class KeywordsTest extends AbstractTestCase
{
$criteria
=
new
Criteria
();
$criteria
->
f
ilters
()
->
add
(
new
FilterGroupCollection
([
$criteria
->
getF
ilters
()
->
add
(
new
FilterGroupCollection
([
new
Filter
(
new
Field
(
'color'
),
new
FilterOperator
(
FilterOperator
::
EQ
)
,
FilterOperator
::
EQ
,
new
FilterKeyword
(
'red'
)
),
new
Filter
(
new
Field
(
'size'
),
new
FilterOperator
(
FilterOperator
::
EQ
)
,
FilterOperator
::
EQ
,
new
FilterKeyword
(
'xl'
)
)
]));
...
...
@@ -203,26 +199,22 @@ class KeywordsTest extends AbstractTestCase
{
$criteria
=
new
Criteria
();
$criteria
->
filters
()
->
add
(
(
new
FilterGroupCollection
([
new
Filter
(
new
Field
(
'category_id'
),
new
FilterOperator
(
FilterOperator
::
EQ
),
new
FilterKeyword
(
'prices'
)
)
]))
->
setFilterType
(
FilterType
::
query
())
$criteria
->
getSearch
()
->
add
(
new
Search
(
new
Property
(
'category_id'
),
'prices'
,
),
);
$criteria
->
f
ilters
()
->
add
(
new
FilterGroupCollection
([
$criteria
->
getF
ilters
()
->
add
(
new
FilterGroupCollection
([
new
Filter
(
new
Field
(
'color'
),
new
FilterOperator
(
FilterOperator
::
EQ
)
,
FilterOperator
::
EQ
,
new
FilterKeyword
(
'red'
)
),
new
Filter
(
new
Field
(
'size'
),
new
FilterOperator
(
FilterOperator
::
EQ
)
,
FilterOperator
::
EQ
,
new
FilterKeyword
(
'xl'
)
)
]));
...
...
tests/F
I
lter/QueryAndPostFilterTest.php
→
tests/F
i
lter/QueryAndPostFilterTest.php
View file @
45efa25e
...
...
@@ -2,19 +2,19 @@
namespace
IQDEV\ElasticSearchTests\Filter
;
use
IQDEV\ElasticSearch\Criteria\Criteria
;
use
IQDEV\ElasticSearch\Criteria\Filter\Collection\FilterGroupCollection
;
use
IQDEV\ElasticSearch\Criteria\Filter\Field
;
use
IQDEV\ElasticSearch\Criteria\Filter\Filter
;
use
IQDEV\ElasticSearch\Criteria\Filter\FilterOperator
;
use
IQDEV\ElasticSearch\Criteria\Filter\FilterType
;
use
IQDEV\ElasticSearch\Criteria\Filter\LogicOperator
;
use
IQDEV\ElasticSearch\Criteria\Filter\Value\FilterKeyword
;
use
IQDEV\ElasticSearch\Criteria\Filter\Value\FilterNumber
;
use
IQDEV\ElasticSearch\Criteria\Query\SearchQuery
;
use
IQDEV\ElasticSearchTests\AbstractTestCase
;
use
IQDEV\ElasticSearchTests\Helpers\FormatData
;
use
IQDEV\ElasticSearchTests\Service\SearchClient
;
use
IQDEV\Search\Criteria
;
use
IQDEV\Search\Filter\Field
;
use
IQDEV\Search\Filter\Filter
;
use
IQDEV\Search\Filter\FilterGroupCollection
;
use
IQDEV\Search\Filter\FilterKeyword
;
use
IQDEV\Search\Filter\FilterNumber
;
use
IQDEV\Search\Filter\FilterOperator
;
use
IQDEV\Search\Filter\FilterType
;
use
IQDEV\Search\Filter\LogicOperator
;
use
IQDEV\Search\Query\SearchQuery
;
class
QueryAndPostFilterTest
extends
AbstractTestCase
{
...
...
@@ -28,12 +28,12 @@ class QueryAndPostFilterTest extends AbstractTestCase
$filterCollectionBrand
=
new
FilterGroupCollection
([
new
Filter
(
new
Field
(
'brand'
),
new
FilterOperator
(
FilterOperator
::
EQ
)
,
FilterOperator
::
EQ
,
new
FilterKeyword
(
'not'
)
)
]);
$filterCollectionBrand
->
setFilterType
(
FilterType
::
query
()
);
$criteria
->
f
ilters
()
->
add
(
$filterCollectionBrand
);
$filterCollectionBrand
->
setFilterType
(
FilterType
::
QUERY
);
$criteria
->
getF
ilters
()
->
add
(
$filterCollectionBrand
);
$q
=
new
SearchQuery
(
$criteria
);
...
...
@@ -59,12 +59,12 @@ class QueryAndPostFilterTest extends AbstractTestCase
$filterCollectionBrand
=
new
FilterGroupCollection
([
new
Filter
(
new
Field
(
'brand'
),
new
FilterOperator
(
FilterOperator
::
EQ
)
,
FilterOperator
::
EQ
,
new
FilterKeyword
(
'adidas'
)
)
]);
$filterCollectionBrand
->
setFilterType
(
FilterType
::
query
()
);
$criteria
->
f
ilters
()
->
add
(
$filterCollectionBrand
);
$filterCollectionBrand
->
setFilterType
(
FilterType
::
QUERY
);
$criteria
->
getF
ilters
()
->
add
(
$filterCollectionBrand
);
$q
=
new
SearchQuery
(
$criteria
);
...
...
@@ -177,28 +177,28 @@ class QueryAndPostFilterTest extends AbstractTestCase
$filterCollectionBrand
=
new
FilterGroupCollection
([
new
Filter
(
new
Field
(
'brand'
),
new
FilterOperator
(
FilterOperator
::
EQ
)
,
FilterOperator
::
EQ
,
new
FilterKeyword
(
'adidas'
)
),
new
Filter
(
new
Field
(
'brand'
),
new
FilterOperator
(
FilterOperator
::
EQ
)
,
FilterOperator
::
EQ
,
new
FilterKeyword
(
'nike'
)
),
]);
$filterCollectionBrand
->
setLogic
alType
(
LogicOperator
::
or
()
)
->
setFilterType
(
FilterType
::
query
()
);
$criteria
->
f
ilters
()
->
add
(
$filterCollectionBrand
);
->
setLogic
Operator
(
LogicOperator
::
OR
)
->
setFilterType
(
FilterType
::
QUERY
);
$criteria
->
getF
ilters
()
->
add
(
$filterCollectionBrand
);
$filterCollectionBrand
=
new
FilterGroupCollection
([
new
Filter
(
new
Field
(
'brand'
),
new
FilterOperator
(
FilterOperator
::
EQ
)
,
FilterOperator
::
EQ
,
new
FilterKeyword
(
'nike'
)
),
]);
$criteria
->
f
ilters
()
->
add
(
$filterCollectionBrand
);
$criteria
->
getF
ilters
()
->
add
(
$filterCollectionBrand
);
$q
=
new
SearchQuery
(
$criteria
);
...
...
@@ -342,23 +342,23 @@ class QueryAndPostFilterTest extends AbstractTestCase
$filterCollectionBrand
=
new
FilterGroupCollection
([
new
Filter
(
new
Field
(
'brand'
),
new
FilterOperator
(
FilterOperator
::
EQ
)
,
FilterOperator
::
EQ
,
new
FilterKeyword
(
'nike'
)
),
]);
$filterCollectionBrand
->
setLogic
alType
(
LogicOperator
::
or
()
)
->
setFilterType
(
FilterType
::
query
()
);
$criteria
->
f
ilters
()
->
add
(
$filterCollectionBrand
);
->
setLogic
Operator
(
LogicOperator
::
OR
)
->
setFilterType
(
FilterType
::
QUERY
);
$criteria
->
getF
ilters
()
->
add
(
$filterCollectionBrand
);
$filterCollectionColor
=
new
FilterGroupCollection
([
new
Filter
(
new
Field
(
'color'
),
new
FilterOperator
(
FilterOperator
::
EQ
)
,
FilterOperator
::
EQ
,
new
FilterKeyword
(
'white'
)
),
]);
$criteria
->
f
ilters
()
->
add
(
$filterCollectionColor
);
$criteria
->
getF
ilters
()
->
add
(
$filterCollectionColor
);
$q
=
new
SearchQuery
(
$criteria
);
...
...
@@ -482,38 +482,38 @@ class QueryAndPostFilterTest extends AbstractTestCase
$filterCollectionBrand
=
new
FilterGroupCollection
([
new
Filter
(
new
Field
(
'brand'
),
new
FilterOperator
(
FilterOperator
::
EQ
)
,
FilterOperator
::
EQ
,
new
FilterKeyword
(
'nike'
)
),
new
Filter
(
new
Field
(
'brand'
),
new
FilterOperator
(
FilterOperator
::
EQ
)
,
FilterOperator
::
EQ
,
new
FilterKeyword
(
'rebook'
)
),
]);
$filterCollectionBrand
->
setLogic
alType
(
LogicOperator
::
or
()
)
->
setFilterType
(
FilterType
::
query
()
);
$criteria
->
f
ilters
()
->
add
(
$filterCollectionBrand
);
->
setLogic
Operator
(
LogicOperator
::
OR
)
->
setFilterType
(
FilterType
::
QUERY
);
$criteria
->
getF
ilters
()
->
add
(
$filterCollectionBrand
);
$filterCollectionColor
=
new
FilterGroupCollection
([
new
Filter
(
new
Field
(
'color'
),
new
FilterOperator
(
FilterOperator
::
EQ
)
,
FilterOperator
::
EQ
,
new
FilterKeyword
(
'white'
)
),
]);
$filterCollectionColor
->
setFilterType
(
FilterType
::
query
()
);
$criteria
->
f
ilters
()
->
add
(
$filterCollectionColor
);
$filterCollectionColor
->
setFilterType
(
FilterType
::
QUERY
);
$criteria
->
getF
ilters
()
->
add
(
$filterCollectionColor
);
$filterCollectionBrand
=
new
FilterGroupCollection
([
new
Filter
(
new
Field
(
'brand'
),
new
FilterOperator
(
FilterOperator
::
EQ
)
,
FilterOperator
::
EQ
,
new
FilterKeyword
(
'nike'
)
),
]);
$criteria
->
f
ilters
()
->
add
(
$filterCollectionBrand
);
$criteria
->
getF
ilters
()
->
add
(
$filterCollectionBrand
);
$q
=
new
SearchQuery
(
$criteria
);
...
...
@@ -625,39 +625,38 @@ class QueryAndPostFilterTest extends AbstractTestCase
$filterCollectionBrand
=
new
FilterGroupCollection
([
new
Filter
(
new
Field
(
'brand'
),
new
FilterOperator
(
FilterOperator
::
EQ
)
,
FilterOperator
::
EQ
,
new
FilterKeyword
(
'nike'
)
),
new
Filter
(
new
Field
(
'brand'
),
new
FilterOperator
(
FilterOperator
::
EQ
)
,
FilterOperator
::
EQ
,
new
FilterKeyword
(
'rebook'
)
),
]);
$filterCollectionBrand
->
setLogic
alType
(
LogicOperator
::
or
()
)
->
setFilterType
(
FilterType
::
query
()
);
$criteria
->
f
ilters
()
->
add
(
$filterCollectionBrand
);
->
setLogic
Operator
(
LogicOperator
::
OR
)
->
setFilterType
(
FilterType
::
QUERY
);
$criteria
->
getF
ilters
()
->
add
(
$filterCollectionBrand
);
$filterCollectionBrand
=
new
FilterGroupCollection
([
new
Filter
(
new
Field
(
'brand'
),
new
FilterOperator
(
FilterOperator
::
EQ
)
,
FilterOperator
::
EQ
,
new
FilterKeyword
(
'nike'
)
),
]);
$criteria
->
f
ilters
()
->
add
(
$filterCollectionBrand
);
$criteria
->
getF
ilters
()
->
add
(
$filterCollectionBrand
);
$filterCollectionColor
=
new
FilterGroupCollection
([
new
Filter
(
new
Field
(
'color'
),
new
FilterOperator
(
FilterOperator
::
EQ
)
,
FilterOperator
::
EQ
,
new
FilterKeyword
(
'red'
)
),
]);
$criteria
->
filters
()
->
add
(
$filterCollectionColor
);
$criteria
->
getFilters
()
->
add
(
$filterCollectionColor
);
$q
=
new
SearchQuery
(
$criteria
);
$handler
=
SearchClient
::
getInstance
();
...
...
@@ -798,12 +797,12 @@ class QueryAndPostFilterTest extends AbstractTestCase
$filterCollectionPrice
=
new
FilterGroupCollection
([
new
Filter
(
new
Field
(
'price'
),
new
FilterOperator
(
FilterOperator
::
GTE
)
,
FilterOperator
::
GTE
,
new
FilterNumber
(
108
)
)
]);
$filterCollectionPrice
->
setFilterType
(
FilterType
::
query
()
);
$criteria
->
f
ilters
()
->
add
(
$filterCollectionPrice
);
$filterCollectionPrice
->
setFilterType
(
FilterType
::
QUERY
);
$criteria
->
getF
ilters
()
->
add
(
$filterCollectionPrice
);
$q
=
new
SearchQuery
(
$criteria
);
...
...
@@ -829,12 +828,12 @@ class QueryAndPostFilterTest extends AbstractTestCase
$filterCollectionPrice
=
new
FilterGroupCollection
([
new
Filter
(
new
Field
(
'price'
),
new
FilterOperator
(
FilterOperator
::
GTE
)
,
FilterOperator
::
GTE
,
new
FilterNumber
(
105
)
)
]);
$filterCollectionPrice
->
setFilterType
(
FilterType
::
query
()
);
$criteria
->
f
ilters
()
->
add
(
$filterCollectionPrice
);
$filterCollectionPrice
->
setFilterType
(
FilterType
::
QUERY
);
$criteria
->
getF
ilters
()
->
add
(
$filterCollectionPrice
);
$q
=
new
SearchQuery
(
$criteria
);
...
...
@@ -948,17 +947,17 @@ class QueryAndPostFilterTest extends AbstractTestCase
$filterCollection
=
new
FilterGroupCollection
([
new
Filter
(
new
Field
(
'price'
),
new
FilterOperator
(
FilterOperator
::
GTE
)
,
FilterOperator
::
GTE
,
new
FilterNumber
(
104
)
),
new
Filter
(
new
Field
(
'brand'
),
new
FilterOperator
(
FilterOperator
::
EQ
)
,
FilterOperator
::
EQ
,
new
FilterKeyword
(
'nike'
)
),
]);
$filterCollection
->
setFilterType
(
FilterType
::
query
()
);
$criteria
->
f
ilters
()
->
add
(
$filterCollection
);
$filterCollection
->
setFilterType
(
FilterType
::
QUERY
);
$criteria
->
getF
ilters
()
->
add
(
$filterCollection
);
$q
=
new
SearchQuery
(
$criteria
);
$handler
=
SearchClient
::
getInstance
();
...
...
@@ -1070,26 +1069,26 @@ class QueryAndPostFilterTest extends AbstractTestCase
$filterCollection
=
new
FilterGroupCollection
([
new
Filter
(
new
Field
(
'price'
),
new
FilterOperator
(
FilterOperator
::
GTE
)
,
FilterOperator
::
GTE
,
new
FilterNumber
(
104
)
),
new
Filter
(
new
Field
(
'brand'
),
new
FilterOperator
(
FilterOperator
::
EQ
)
,
FilterOperator
::
EQ
,
new
FilterKeyword
(
'nike'
)
),
]);
$filterCollection
->
setFilterType
(
FilterType
::
query
()
);
$criteria
->
f
ilters
()
->
add
(
$filterCollection
);
$filterCollection
->
setFilterType
(
FilterType
::
QUERY
);
$criteria
->
getF
ilters
()
->
add
(
$filterCollection
);
$filterCollectionColor
=
new
FilterGroupCollection
([
new
Filter
(
new
Field
(
'color'
),
new
FilterOperator
(
FilterOperator
::
EQ
)
,
FilterOperator
::
EQ
,
new
FilterKeyword
(
'red'
)
),
]);
$criteria
->
f
ilters
()
->
add
(
$filterCollectionColor
);
$criteria
->
getF
ilters
()
->
add
(
$filterCollectionColor
);
$q
=
new
SearchQuery
(
$criteria
);
$handler
=
SearchClient
::
getInstance
();
...
...
@@ -1200,48 +1199,48 @@ class QueryAndPostFilterTest extends AbstractTestCase
$filterCollectionPrice
=
new
FilterGroupCollection
([
new
Filter
(
new
Field
(
'price'
),
new
FilterOperator
(
FilterOperator
::
LTE
)
,
FilterOperator
::
LTE
,
new
FilterNumber
(
104
)
),
]);
$filterCollectionPrice
->
setFilterType
(
FilterType
::
query
()
);
$criteria
->
f
ilters
()
->
add
(
$filterCollectionPrice
);
$filterCollectionPrice
->
setFilterType
(
FilterType
::
QUERY
);
$criteria
->
getF
ilters
()
->
add
(
$filterCollectionPrice
);
$filterCollectionBrand
=
new
FilterGroupCollection
([
new
Filter
(
new
Field
(
'brand'
),
new
FilterOperator
(
FilterOperator
::
EQ
)
,
FilterOperator
::
EQ
,
new
FilterKeyword
(
'nike'
)
),
new
Filter
(
new
Field
(
'brand'
),
new
FilterOperator
(
FilterOperator
::
EQ
)
,
FilterOperator
::
EQ
,
new
FilterKeyword
(
'adidas'
)
),
]);
$filterCollectionBrand
->
setLogic
alType
(
LogicOperator
::
or
()
)
->
setFilterType
(
FilterType
::
query
()
);
$criteria
->
f
ilters
()
->
add
(
$filterCollectionBrand
);
->
setLogic
Operator
(
LogicOperator
::
OR
)
->
setFilterType
(
FilterType
::
QUERY
);
$criteria
->
getF
ilters
()
->
add
(
$filterCollectionBrand
);
$filterCollectionColor
=
new
FilterGroupCollection
([
new
Filter
(
new
Field
(
'color'
),
new
FilterOperator
(
FilterOperator
::
EQ
)
,
FilterOperator
::
EQ
,
new
FilterKeyword
(
'green'
)
),
]);
$criteria
->
f
ilters
()
->
add
(
$filterCollectionColor
);
$criteria
->
getF
ilters
()
->
add
(
$filterCollectionColor
);
$filterCollectionBrand
=
new
FilterGroupCollection
([
new
Filter
(
new
Field
(
'brand'
),
new
FilterOperator
(
FilterOperator
::
EQ
)
,
FilterOperator
::
EQ
,
new
FilterKeyword
(
'nike'
)
),
]);
$criteria
->
f
ilters
()
->
add
(
$filterCollectionBrand
);
$criteria
->
getF
ilters
()
->
add
(
$filterCollectionBrand
);
$q
=
new
SearchQuery
(
$criteria
);
...
...
@@ -1371,39 +1370,39 @@ class QueryAndPostFilterTest extends AbstractTestCase
$filterCollectionPrice
=
new
FilterGroupCollection
([
new
Filter
(
new
Field
(
'price'
),
new
FilterOperator
(
FilterOperator
::
LTE
)
,
FilterOperator
::
LTE
,
new
FilterNumber
(
104
)
),
]);
$filterCollectionPrice
->
setFilterType
(
FilterType
::
query
()
);
$criteria
->
f
ilters
()
->
add
(
$filterCollectionPrice
);
$filterCollectionPrice
->
setFilterType
(
FilterType
::
QUERY
);
$criteria
->
getF
ilters
()
->
add
(
$filterCollectionPrice
);
$filterCollectionBrand
=
new
FilterGroupCollection
([
new
Filter
(
new
Field
(
'brand'
),
new
FilterOperator
(
FilterOperator
::
EQ
)
,
FilterOperator
::
EQ
,
new
FilterKeyword
(
'nike'
)
),
new
Filter
(
new
Field
(
'brand'
),
new
FilterOperator
(
FilterOperator
::
EQ
)
,
FilterOperator
::
EQ
,
new
FilterKeyword
(
'adidas'
)
),
]);
$filterCollectionBrand
->
setLogic
alType
(
LogicOperator
::
or
()
)
->
setFilterType
(
FilterType
::
query
()
);
$criteria
->
f
ilters
()
->
add
(
$filterCollectionBrand
);
->
setLogic
Operator
(
LogicOperator
::
OR
)
->
setFilterType
(
FilterType
::
QUERY
);
$criteria
->
getF
ilters
()
->
add
(
$filterCollectionBrand
);
$filterCollectionPrice
=
new
FilterGroupCollection
([
new
Filter
(
new
Field
(
'price'
),
new
FilterOperator
(
FilterOperator
::
GTE
)
,
FilterOperator
::
GTE
,
new
FilterNumber
(
102
)
),
]);
$criteria
->
f
ilters
()
->
add
(
$filterCollectionPrice
);
$criteria
->
getF
ilters
()
->
add
(
$filterCollectionPrice
);
$q
=
new
SearchQuery
(
$criteria
);
...
...
@@ -1534,48 +1533,48 @@ class QueryAndPostFilterTest extends AbstractTestCase
$filterCollectionPrice
=
new
FilterGroupCollection
([
new
Filter
(
new
Field
(
'price'
),
new
FilterOperator
(
FilterOperator
::
LTE
)
,
FilterOperator
::
LTE
,
new
FilterNumber
(
104
)
),
]);
$filterCollectionPrice
->
setFilterType
(
FilterType
::
query
()
);
$criteria
->
f
ilters
()
->
add
(
$filterCollectionPrice
);
$filterCollectionPrice
->
setFilterType
(
FilterType
::
QUERY
);
$criteria
->
getF
ilters
()
->
add
(
$filterCollectionPrice
);
$filterCollectionBrand
=
new
FilterGroupCollection
([
new
Filter
(
new
Field
(
'brand'
),
new
FilterOperator
(
FilterOperator
::
EQ
)
,
FilterOperator
::
EQ
,
new
FilterKeyword
(
'nike'
)
),
new
Filter
(
new
Field
(
'brand'
),
new
FilterOperator
(
FilterOperator
::
EQ
)
,
FilterOperator
::
EQ
,
new
FilterKeyword
(
'adidas'
)
),
]);
$filterCollectionBrand
->
setLogic
alType
(
LogicOperator
::
or
()
)
->
setFilterType
(
FilterType
::
query
()
);
$criteria
->
f
ilters
()
->
add
(
$filterCollectionBrand
);
->
setLogic
Operator
(
LogicOperator
::
OR
)
->
setFilterType
(
FilterType
::
QUERY
);
$criteria
->
getF
ilters
()
->
add
(
$filterCollectionBrand
);
$filterCollectionPrice
=
new
FilterGroupCollection
([
new
Filter
(
new
Field
(
'price'
),
new
FilterOperator
(
FilterOperator
::
GTE
)
,
FilterOperator
::
GTE
,
new
FilterNumber
(
101
)
),
]);
$criteria
->
f
ilters
()
->
add
(
$filterCollectionPrice
);
$criteria
->
getF
ilters
()
->
add
(
$filterCollectionPrice
);
$filterCollectionColor
=
new
FilterGroupCollection
([
new
Filter
(
new
Field
(
'color'
),
new
FilterOperator
(
FilterOperator
::
EQ
)
,
FilterOperator
::
EQ
,
new
FilterKeyword
(
'green'
)
),
]);
$criteria
->
f
ilters
()
->
add
(
$filterCollectionColor
);
$criteria
->
getF
ilters
()
->
add
(
$filterCollectionColor
);
$q
=
new
SearchQuery
(
$criteria
);
...
...
Prev
1
2
3
4
5
6
Next