Yii2 snippets with match mode

Уже исправленные репорты или принятые предложения
Ответить
Ellumilel
Сообщения: 2
Зарегистрирован: 2011.02.16, 11:12

Yii2 snippets with match mode

Сообщение Ellumilel » 2015.12.05, 18:38

Помогите разобраться,
Есть запрос к Sphinx, в ответе получаем массив со строками и Snippets, с выделенными словами в теге <b>%s</b>:

Код: Выделить всё

$data = $query->from('test')
                    ->snippetCallback(
                        function ($rows) {
                            $result = [];
                            foreach ($rows as $row) {
                                $text = SearchText::find()->where(['id' => $row['id']])->one();
                                $result[] = $text->full_text;
                            }

                            return $result;
                        }
                    )
                    ->snippetOptions(['before_match' => '<b>', 'after_match' => '</b>'])
                    ->match($query_string])
                    ->all();
Тот же запрос но с использованием Expression, не подсвечивает слова в блоке Snippets:

Код: Выделить всё

$data = $query->from('test')
                    ->snippetCallback(
                        function ($rows) {
                            $result = [];
                            foreach ($rows as $row) {
                                $text = SearchText::find()->where(['id' => $row['id']])->one();
                                $result[] = $text->full_text;
                            }

                            return $result;
                        }
                    )
                    ->snippetOptions(['before_match' => '<b>', 'after_match' => '</b>'])
                    ->match(new Expression(':match', ['match' => '@(full_text) ' . $query_string]))
                    ->all();
 
Сталкивался ли кто-нибудь с такой проблемой? Если нет, подскажите, как можно обойти или как сделать запросы к Sphinx с использованием Expression и получить Snippets

goodini
Сообщения: 3
Зарегистрирован: 2016.05.30, 12:06

Re: Yii2 snippets with match mode

Сообщение goodini » 2016.05.30, 12:18

Так же столкнулся с этой проблемой. Не подставляет параметр qp2 в CALL SNIPPETS. Подскажите как решить

goodini
Сообщения: 3
Зарегистрирован: 2016.05.30, 12:06

Re: Yii2 snippets with match mode

Сообщение goodini » 2016.05.30, 13:18

в yii\sphinx\QueryBuilder

$params[$matchParamName] = $match; (411 строка

заменить на

if ($match instanceof Expression) {
$params[$matchParamName] = $match->params['match'];
} else {
$params[$matchParamName] = $match;
}

Аватара пользователя
samdark
Администратор
Сообщения: 8552
Зарегистрирован: 2009.04.02, 13:46
Откуда: Воронеж
Контактная информация:

Re: Yii2 snippets with match mode

Сообщение samdark » 2016.06.06, 21:21

Закинете на GitHub?

Ellumilel
Сообщения: 2
Зарегистрирован: 2011.02.16, 11:12

Re: Yii2 snippets with match mode

Сообщение Ellumilel » 2016.11.23, 13:34

Проблема была решена:
https://github.com/yiisoft/yii2-sphinx/issues/61

Ответить