В парсер гугл подсказок добавить фильтр на определение к чему отностися подсказка - к части фразы или к общей фразе ? Например: тут подсказки идут к букве "п" - относится только к последнему слову фразы а тут уже подсказки ко всей фразе, которые более релевантные.
Например разделением фразы на слова и проверкой, есть ли эти слова в предложенной подсказке, а так-же по количеству слов в подсказке - должно быть всегда > либо =.
Не совсем понятно, как это должно работать... Например, по запросу новости дня онлайн видео п выдаются такие подсказки: В запросе 5 слов, 4 из них (новости, дня, онлайн, видео) есть в каждой подсказке, 5-го (п) - нету нигде. При этом кол-во слов в каждой подсказке больше либо равно кол-ву в запросе. То же самое для запроса новости дня онлайн в: В запросе 4 слова, 3 из них (новости, дня, онлайн) есть в каждой подсказке, 4-го (в) - нету нигде. При этом кол-во слов в каждой подсказке больше либо равно кол-ву в запросе. Получается всегда срабатывают указанные вами условия и все подсказки не подходят (нету одного слова из запроса). Врятли это то, что нужно) При этом, данную задачу вполне можно решать шаблонизатором.
Точно так, как описано выше: разбить запрос и каждую подсказку на слова, проверить кол-во совпадений и сравнить кол-во слов. Примерно так это выглядит: Код: [% #разделяем запрос на слова qArr = p1.query.query.split(' '); #перебираем в цикле полученные подсказки FOREACH s IN p1.results; #разделяем подсказку на слова sArr = s.suggest.split(' '); #считаем кол-во слов из запроса в подсказке count = 0; FOREACH q IN qArr; IF sArr.grep('^' _ q _ '$').size; count = count + 1; END; END; #выводим результат 'В запросе ' _ qArr.size _ ' слов, в подсказке ' _ sArr.size _ ' слов, совпадений ' _ count _ "\n"; IF qArr.size == count && sArr.size >= qArr.size; s.suggest _ "\n"; END; END %] Но, как уже было описано выше, данный способ не даст ожидаемого результат, причины также описаны выше.