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
fb8a99dd
Commit
fb8a99dd
authored
Jul 19, 2011
by
Bas de Nooijer
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Added an example of query re-use
parent
77ee7bcc
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
73 additions
and
1 deletion
+73
-1
examples/2.7-query-reuse.php
examples/2.7-query-reuse.php
+72
-0
examples/index.html
examples/index.html
+1
-1
No files found.
examples/2.7-query-reuse.php
0 → 100644
View file @
fb8a99dd
<?php
require
(
'init.php'
);
htmlHeader
();
// create a client instance
$client
=
new
Solarium_Client
(
$config
);
// first create a base query as a query class
class
PriceQuery
extends
Solarium_Query_Select
{
protected
function
_init
()
{
// set a query (all prices starting from 12)
$this
->
setQuery
(
'price:[12 TO *]'
);
// set start and rows param (comparable to SQL limit) using fluent interface
$this
->
setStart
(
2
)
->
setRows
(
20
);
// set fields to fetch (this overrides the default setting 'all fields')
$this
->
setFields
(
array
(
'id'
,
'name'
,
'price'
));
// sort the results by price ascending
$this
->
addSort
(
'price'
,
self
::
SORT_ASC
);
}
}
// the query instance easily be altered based on user input
// try calling this page with "?start=10" added to the url.
$query
=
new
PriceQuery
();
if
(
isset
(
$_GET
[
'start'
])
&&
is_numeric
(
$_GET
[
'start'
])){
$query
->
setStart
(
$_GET
[
'start'
]);
}
// alternatively you can use class inheritance to create query inheritance
// in this example this class isn't actually used, but you can simple replace
// the var $query with an instance of this class...
class
LowerPriceQuery
extends
PriceQuery
{
protected
function
_init
()
{
// this call makes sure we get all the settings of the parent class
parent
::
_init
();
$this
->
setQuery
(
'price:[5 TO *]'
);
}
}
// this executes the query and returns the result
$resultset
=
$client
->
select
(
$query
);
// display the total number of documents found by solr
echo
'NumFound: '
.
$resultset
->
getNumFound
();
// show documents using the resultset iterator
foreach
(
$resultset
as
$document
)
{
echo
'<hr/><table>'
;
// the documents are also iterable, to get all fields
foreach
(
$document
AS
$field
=>
$value
)
{
// this converts multivalue fields to a comma-separated string
if
(
is_array
(
$value
))
$value
=
implode
(
', '
,
$value
);
echo
'<tr><th>'
.
$field
.
'</th><td>'
.
$value
.
'</td></tr>'
;
}
echo
'</table>'
;
}
htmlFooter
();
\ No newline at end of file
examples/index.html
View file @
fb8a99dd
...
@@ -45,7 +45,7 @@
...
@@ -45,7 +45,7 @@
<li><a
href=
"2.5.4-dismax.php"
>
2.5.4 Dismax
</a></li>
<li><a
href=
"2.5.4-dismax.php"
>
2.5.4 Dismax
</a></li>
</ul>
</ul>
<li><a
href=
"2.6-helper-functions.php"
>
2.6 Helper functions
</a></li>
<li><a
href=
"2.6-helper-functions.php"
>
2.6 Helper functions
</a></li>
<li><a
href=
"2.7-query-reuse.php"
>
2.7 Query re-use
</a></li>
</ul>
</ul>
<li>
3. Update query
</li>
<li>
3. Update query
</li>
...
...
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