Поиск подстроки в строке sql: О строковых функциях SQL или как манипулировать текстом в базе данных MySQL : WEBCodius

Быстрый способ найти строку по подстроке в SQL?

вы можете добавить еще один вычисляемый столбец в таблицу: titleLength как LEN (title) сохраняется. Это сохранит длину столбца «title». Создайте индекс на этом.

кроме того, добавьте еще один вычисляемый столбец с именем: ReverseTitle как Reverse(title).

теперь, когда кто-то ищет ключевое слово, проверьте, совпадает ли длина ключевого слова с titlelength. Если да, выполните поиск»=». Если длина ключевого слова меньше длины titleLength, то сделайте подобное. Но сначала сделать название вроде ‘АБВ%’, то сделать reverseTitle как ‘ЦБА%’. Подобный подход Брэда — т. е. вы делаете следующий сложный запрос только при необходимости.

кроме того, если правила 80-20 применяются к вашим ключевым словам/ подстрокам (т. е. если большинство поисков находятся на меньшинстве ключевых слов), то вы также можете рассмотреть возможность кэширования. Например: скажем, вы обнаружите, что многие пользователи ищут ключевое слово «abc» , и этот поиск по ключевым словам возвращает записи с идентификаторами 20, 22, 24, 25 — вы можете хранить это в отдельной таблице и индексировать. И теперь, когда кто-то ищет новое ключевое слово, сначала посмотрите в этой таблице «кэш», чтобы увидеть, был ли поиск уже выполнен предыдущим пользователем. Если это так, не нужно снова смотреть в главной таблице. Просто верните результаты из таблицы «cache».

вы также можете объединить вышеуказанное с SQL Server TextSearch. (если у вас есть веская причина не использовать его). Но, тем не менее, вы можете использовать текстовый поиск сначала для короткого списка результирующего набора. а потом запустить SQL-запрос к вашей таблице для получения точных результатов, используя идентификаторы, возвращаемые текстовым поиском в качестве параметра вместе с ключевым словом.

все это, очевидно, предполагает, что вы должны использовать SQL. Если нет, вы можете исследовать что-то вроде Apache Solr.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Theme: Overlay by Kaira Extra Text
Cape Town, South Africa