Этот вопрос - вызов для меня, мой друг не может сказать мне, как это сделать, но он действительно хороший программист (я думаю).
Пользователи могут помещать в базу предложений. Когда пользователь вводит предложение, оно сохраняется в таблице sentences
.
Далее предложение разбивается на слова, каждый звуковой индекс слова сохраняется в таблице tags
с идентификатором разбитого предложения.
Наконец, каждый звуковой осветитель слова помещается в таблицу weights
, если там есть арлиады того же soundex, функция добавляет 1 к counter
этого soundex.
(Для тех, кто не знает: soundex - это функция, которая возвращает фонетическое представление (как оно звучит) строки)
Структура базы данных:
Одна таблица sentences
содержит две строки: id
и sentence
.
Другая таблица tags
содержит id
(с - это id предложения) и tag
(с - это одно слово из предложения).
tag
на самом деле не просто простое слово, а звуковое сопровождение этого слова.
Последняя таблица weights
содержит tag
и weight
(с помощью числа это говорит о том, сколько таких тегов в таблице tags
)
Мой вопрос: как я могу сделать так, чтобы ведьма возвращала похожие предложения для данной строки.
Он должен использовать теги (soundex of word), и каждый тег должен иметь собственную мощность, основанную на таблице weights
.
Часто используемые теги важнее оригинальных тегов. Это можно сделать всего за один запрос MySQL?
Следующий вопрос: я думаю, что такой способ поиска похожих предложений хорош, но что со скоростью этой функции?
Мне нужно очень часто использовать его на моем сайте.