Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions src/php5/solr_functions_params.c
Original file line number Diff line number Diff line change
Expand Up @@ -713,7 +713,7 @@ PHP_SOLR_API void solr_arg_list_param_value_fetch(solr_param_t *solr_param, solr
{
solr_string_append_solr_string(&tmp_buffer, &(current_ptr->contents.arg_list.value));

if (current_ptr->contents.arg_list.delimiter_override) {
if (current_ptr->contents.arg_list.delimiter_override && *current_ptr->contents.arg_list.delimiter_override) {
solr_string_appendc(&tmp_buffer, *current_ptr->contents.arg_list.delimiter_override);
} else {
solr_string_appendc(&tmp_buffer, separator);
Expand All @@ -730,7 +730,7 @@ PHP_SOLR_API void solr_arg_list_param_value_fetch(solr_param_t *solr_param, solr

solr_string_append_solr_string(&tmp_buffer, &(current_ptr->contents.arg_list.value));

if (current_ptr->contents.arg_list.delimiter_override) {
if (current_ptr->contents.arg_list.delimiter_override && *current_ptr->contents.arg_list.delimiter_override) {
solr_string_appendc(&tmp_buffer, *current_ptr->contents.arg_list.delimiter_override);
} else {
solr_string_appendc(&tmp_buffer, separator);
Expand Down
4 changes: 2 additions & 2 deletions src/php7/solr_functions_params.c
Original file line number Diff line number Diff line change
Expand Up @@ -700,7 +700,7 @@ PHP_SOLR_API void solr_arg_list_param_value_fetch(solr_param_t *solr_param, solr
{
solr_string_append_solr_string(&tmp_buffer, &(current_ptr->contents.arg_list.value));

if (current_ptr->contents.arg_list.delimiter_override) {
if (current_ptr->contents.arg_list.delimiter_override && *current_ptr->contents.arg_list.delimiter_override) {
solr_string_appendc(&tmp_buffer, *current_ptr->contents.arg_list.delimiter_override);
} else {
solr_string_appendc(&tmp_buffer, separator);
Expand All @@ -717,7 +717,7 @@ PHP_SOLR_API void solr_arg_list_param_value_fetch(solr_param_t *solr_param, solr

solr_string_append_solr_string(&tmp_buffer, &(current_ptr->contents.arg_list.value));

if (current_ptr->contents.arg_list.delimiter_override) {
if (current_ptr->contents.arg_list.delimiter_override && *current_ptr->contents.arg_list.delimiter_override) {
solr_string_appendc(&tmp_buffer, *current_ptr->contents.arg_list.delimiter_override);
} else {
solr_string_appendc(&tmp_buffer, separator);
Expand Down
49 changes: 48 additions & 1 deletion tests/bug_72740.phpt
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
--TEST--
Solr Bug #72740 - addQueryField return wrong query
Solr Bug #72740 - addPhraseField return wrong query
--SKIPIF--
<?php require_once 'skip.if.server_not_configured.inc'; ?>
--FILE--
Expand All @@ -23,11 +23,36 @@ $dismaxQuery->addPhraseField( "phraseField2", 5, 1 );
$dismaxQuery->addSortField('score', SolrQuery::ORDER_DESC);
$dismaxQuery->addSortField('manufacturedate_dt', SolrQuery::ORDER_DESC);

// Scenario 1: DisMax Query Parser - Adds Phrase Fields with both boost and slop.
// Expect:
// - pf parameter should list each phrase field with ~ and ^ prefix for slop and boost value respectively.
$queryResponse = $client->query( $dismaxQuery );

print_r($queryResponse->getResponse()->responseHeader->params);

// Scenario 2: Same as Scenario 1, now including explicit query fields too.
// Expect:
// - pf parameter should list each phrase field with ~ and ^ prefix for slop and boost value respectively.
// - qf parameter should list each query field with a trailing ^ (no boost here).
$dismaxQuery->addQueryField('score');
$dismaxQuery->addQueryField('manufacturedate_dt');

$queryResponse = $client->query( $dismaxQuery );

print_r($queryResponse->getResponse()->responseHeader->params);

// Scenario 3: Same as Scenario 2, now including explicit boost value for the query fields.
// Expect:
// - pf parameter should list each phrase field with ~ and ^ prefix for slop and boost value respectively.
// - qf parameter should list each query field with a ^ prefix for boost value.
$dismaxQuery->removeQueryField('score');
$dismaxQuery->removeQueryField('manufacturedate_dt');
$dismaxQuery->addQueryField('score', 3);
$dismaxQuery->addQueryField('manufacturedate_dt', 7);

$queryResponse = $client->query( $dismaxQuery );

print_r($queryResponse->getResponse()->responseHeader->params);
?>
--EXPECTF--
SolrObject Object
Expand All @@ -39,4 +64,26 @@ SolrObject Object
[sort] => score desc,manufacturedate_dt desc
[version] => 2.2
[wt] => xml
)
SolrObject Object
(
[q] => *:*
[defType] => edismax
[indent] => on
[qf] => score^ manufacturedate_dt^
[pf] => phraseField1~5^10 phraseField2~1^5
[sort] => score desc,manufacturedate_dt desc
[version] => 2.2
[wt] => xml
)
SolrObject Object
(
[q] => *:*
[defType] => edismax
[indent] => on
[qf] => score^3 manufacturedate_dt^7
[pf] => phraseField1~5^10 phraseField2~1^5
[sort] => score desc,manufacturedate_dt desc
[version] => 2.2
[wt] => xml
)