Меня попросили собрать поиск по одной из наших баз данных.
Критерий: пользователь вводит в поле поиска, затем SQL нужно разделить все слова в поиске и искать каждое из них по нескольким полям (вероятно, 2 или 3), затем ему нужно взвесить результаты для Например, результат, в котором отображаются все слова, будет лучшим результатом, а если появится только 1 слово, он будет взвешен ниже.
Например, если вы ищете "Это демонстрационный пост"
Результаты будут оцениваться следующим образом
Rank Field1 Field2
1: "This is a demo post" ""
2: "demo post" ""
3: "demo" "post"
4: "post" ""
Надеюсь, что это имеет какой-то смысл, своего рода базовый Google-подобный поиск.
В любом случае, я могу думать, что это очень грязно.
Любые предложения будут великолепны.