Как создать мультиязычный поиск с помощью sphinx, а так же по нескольким таблицам из базы?
Как создать мультиязычный поиск с помощью sphinx, а так же по нескольким таблицам из базы данных mysql? из сайтов я понял как установить и подключить sphinx к сайту и сделать поиск по одной таблице, мне нужно чтоб поиск велся не только по одной таблице и плюс чтоб была возможность искать на разных языках.
Александр Иванов, Для разных языков - нужно создать колонки с переводами на нужные языки (в той же таблице). А переводить - можно автоматически (с помощью Google Translate API, например) или вручную.
Я делаю так: Caption[ru-ru], Caption[en-us] и т.д.
Поиск - у меня выполняется по колонкам в соответствии с текущим выбранным языком.
Для создания поиска (для каждого языка по-отдельности) - использовал генерацию связей графа "Full-Mesh" и таблицу-указатель индексов по этому графу.
Зная расстояния между узлами (похожесть строк в процентах), я могу быстро и точно выдавать нужный результат.
xmoonlight, я сделал не дополнительные колонки а таблицы с переводом на разные языки, т.к. У меня не определенное количество языков, может быть и 2 и 5
А этот отрывок я не понял "использовал генерацию связей графа "Full-Mesh" и таблицу-указатель индексов по этому графу."
И с узлами не знаком еще, натолкните на литературу
У меня не определенное количество языков, может быть и 2 и 5
Как раз именно для этого я и посоветовал: делайте столько колонок, сколько необходимо сделать языков, а числовые значения - будут для всех одни и те же.
Выборка - будет тоже одна и та же, с подстановкой в нужные поля нужного языка.
-------
Топология Full-Mesh:
Берём все строки по-парно с поисковым запросом (поисковый запрос и каждая строка из таблиц) определяем степень соответствия.
Сохраняем каждый такой граф и при следующем аналогичном поиске у нас уже будут готовые результаты, которые мы сможем взять по "узлу" ранее сохранённого поискового запроса.