• Модуль: im
  • Путь к файлу: ~/bitrix/modules/im/lib/internals/chatindex.php
  • Класс: BitrixImInternalsChatIndex
  • Вызов: ChatIndex::matchAgainstWildcard
static function matchAgainstWildcard($phrase, $leftWildcard = '+' , $rightWildcard = '*', $minTokenSize = null)
{
	$ftMinTokenSize = $minTokenSize ?: BitrixMainORMQueryFilterHelper::getMinTokenSize();

	$orValues = [];

	//split to words by any non-word symbols
	$andValues = BitrixMainORMQueryFilterHelper::splitWords($phrase);

	if(!empty($andValues))
	{
		$andValues = array_filter(
			$andValues,
			static function($val) use ($ftMinTokenSize)
			{
				return (mb_strlen($val) >= $ftMinTokenSize);
			}
		);

		if(!empty($andValues))
		{
			$orValues[] = $leftWildcard . implode($rightWildcard . " " . $leftWildcard, $andValues) . $rightWildcard;
		}
	}

	if(!empty($orValues))
	{
		return "(".implode(") (", $orValues).")";
	}

	return '';
}