У меня есть 50 строк в MySQL. Каждая строка состоит из нескольких ключевых слов, разделенных запятой. У меня есть еще одна таблица с описанием. Я хочу просмотреть все описания и выяснить, какая строка ключевых слов лучше всего подходит для этого описания. Как я могу сделать это. Я использую PHP и Mysql. Я тоже использую сфинкса. Но не так много удачи.
Есть ли другие способы для этого?
заранее спасибо:)
Ну, вы могли бы просто сделать это условно. Переберите все списки ключевых слов и найдите, какой документ (ы) им подходит. Сохраните этот список где-нибудь, и затем можете посмотреть его, чтобы получить обратный список напрямую.
В противном случае вы смотрите на вариант Проспективного поиска (с упоминанием названия, поэтому можете использовать его, ищите дополнительные материалы для чтения!)
Какой сфинкс может сделать. Постройте индекс по таблице ключевых слов. Затем выполните цикл каждого описания и создайте запрос, используя синтаксис «кворума». Таким образом, запрос должен соответствовать только одному (или более) словам.
Для каждого документа sphinx вернет вам список возможных совпадений ключевых слов в порядке соответствия. Можно просто взять верхний документ как «лучший матч»
Главное не брать все документы с ключевыми словами, возвращенные из sphinx, так как он будет включать много совпадений очень низкого качества. В основном нужно опубликовать результаты обработки, и отказаться от хвоста результатов.
Использование SPH_RANK_MATCHANY — хороший расчет рейтинга для этого.
Других решений пока нет …