У меня не определенное количество языков, может быть и 2 и 5
Как раз именно для этого я и посоветовал: делайте столько колонок, сколько необходимо сделать языков, а числовые значения - будут для всех одни и те же.
Выборка - будет тоже одна и та же, с подстановкой в нужные поля нужного языка.
-------
Топология Full-Mesh:
Берём все строки по-парно с поисковым запросом (поисковый запрос и каждая строка из таблиц) определяем степень соответствия.
Сохраняем каждый такой граф и при следующем аналогичном поиске у нас уже будут готовые результаты, которые мы сможем взять по "узлу" ранее сохранённого поискового запроса.
Александр Иванов, Для разных языков - нужно создать колонки с переводами на нужные языки (в той же таблице). А переводить - можно автоматически (с помощью Google Translate API, например) или вручную.
Я делаю так: Caption[ru-ru], Caption[en-us] и т.д.
Поиск - у меня выполняется по колонкам в соответствии с текущим выбранным языком.
Для создания поиска (для каждого языка по-отдельности) - использовал генерацию связей графа "Full-Mesh" и таблицу-указатель индексов по этому графу.
Зная расстояния между узлами (похожесть строк в процентах), я могу быстро и точно выдавать нужный результат.
Yan-s, всё верно, только не факт, что именно разбор DOM. Может быть и усовершенствованный markdown-синтаксис какой-нибудь. Всё зависит от того, в каком виде новая публикация приходит в обработку для постинга.
dom1n1k, согласен на все 1000%. Одна голова хорошо, а две - лучше!
Откуда брал код, делали (как я понял) для одной строки в заголовке item...
Я подправил, и вот как вышло.
PS: могу дать исходник, если интересно...
dom1n1k, Честно? Да...
Я даже и не ожидал, но подсознание - реально фиксирует гармонию...
Но пока - надо "качаться".
Там очень много приёмов как правильно юзать под разные элементы.. (я учусь пока сам...)
GavriKos, а кто отменял проверку по "веткам дерева" через in_array() ?
А нужно всунуть новую команду - array_push() с нужным индексом.
И входящая очередь - тоже массив.
switch() внутри цикла while-do: пока очередь не пуста - крутим и опустошаем через array_pop().
Закончили обработку всей очереди - вышли из цикла.