Вот есть n-грамма такая:
собака воет всюду
"собака воет всюду" : ngram_id = 555 // id фразы для ссылки на неё
"бакланы всюду" : ngram_id = 666 // какая-то другая ngram
собака - 555
собака воет - 555
собака воет всюду - 555
воет - 555
воет всюду - 555
всюду - 555, 666 // две ссылки
Так? А если юзер вобьёт в поиск «всюду воет», что не встречается в исходной ngram, то как обычно делают? Перемешивают все граммы в n-грамме и сохраняют все перестановки или просто делают 2 отдельных поиска для 2 отдельных слов в запросе?