Поисковый запрос, без специальных символов, SOQL

У меня есть этот кусок кода, который ищет название кампании:

function test_search() {
$mySforceConnection = new SforceEnterpriseClient();
$mySoapClient       = $mySforceConnection->createConnection( 'soapclient/wsdl_dev.jsp.xml' );
$mylogin            = $mySforceConnection->login( USERNAME_TEST, PASSWORD_TEST . SECURITY_TOKEN_TEST );

$campaign_name = 'A \& B Campaign';

$search          = 'FIND {' . $campaign_name . '} IN NAME FIELDS RETURNING CAMPAIGN(ID)';
$searchResult    = $mySforceConnection->search( $search );
$campaign_id = $searchResult->searchRecords[0]->Id;
echo '<pre dir="ltr">';
var_dump( $searchResult );
var_dump( $campaign_id );
echo '</pre>';
error_log( '$searchResult: ' . print_r( $searchResult, true ) );
}

test_search();

Вывод, который я получаю, — это идентификатор кампании, когда я перехожу на страницу, которая показывает, что с Campaign все в порядке, она показывает, что я искал.

Теперь, если я изменю это:

$campaign_name = 'A \& B Campaign';

В это:

$campaign_name = 'A \- B Campaign';

и запустить функцию test_search()Я все еще получаю тот же идентификатор кампании, и мне бы хотелось, чтобы поисковый запрос проводил различие!

Есть идеи, почему это происходит и как это исправить?

Спасибо,
Одед

0

Решение

SOSL — это механизм полнотекстового поиска (я где-то читал, что он использует Apache Solr за кулисами). Он будет искать слова из вашей фразы, но вы не указали точное соответствие (это будет заключать термин в кавычки, FIND {"A \- B Campaign"}). Он пытается быть умным, пропускать слишком короткие слова, учитывать разные суффиксы в грамматике английского языка и т. Д. Это нечеткий механизм поиска.

Или, возможно, вам нужен старый добрый оператор SELECT? SELECT Id FROM Campaign WHERE Name LIKE '%A & B Campaign%'? Если все, что вам нужно, это 1 объект и только поля Name … (это будет метод query () из того, что я помню, а не search ())

Если у вас есть доступ к вашей SF-организации, просто поэкспериментируйте прямо в консоли разработчика -> Редактор запросов, например.

2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]