Подтвердить что ты не робот

Что такое полнотекстовый индекс и когда я должен его использовать?

Как указано в заголовке, что такое полнотекстовый индекс и когда его использовать?

4b9b3361

Ответ 1

В базах данных индексы обычно используются для повышения производительности при поиске чего-то определенного в вашем предложении where. Однако, когда дело доходит до фильтрации некоторого текста, например. используя что-то вроде WHERE TextColumn LIKE '%searchstring%', поиск выполняется медленно, поскольку работа регулярных индексов базы данных оптимизирована для совпадений с "целым содержимым" столбца, а не только его частью. В частности, поиск LIKE не может использовать какой-либо индекс.

Как упоминалось в комментарии ниже MySQL нуждается в синтаксисе MATCH () ... AGAINST для поиска в полнотекстовом индексе; BTW это зависит от поставщика базы данных. В MS SQL вы можете использовать CONTAINS, поэтому имейте это в виду, когда вы планируете также поддерживать другие базы данных.

Полнотекстовые индексы работают лучше для обычного текста, потому что они оптимизированы для этих типов столбцов. Очень упрощено: они разбивают текст на слова и делают указатель на слова, а не весь текст. Это работает намного быстрее при поиске текста при поиске конкретных слов.

Ответ 2

Полнотекстовый индекс - это индекс, который вы применяете в базе данных MySQL, к текстовым полям, на которых вы планируете полнотекстовый поиск. Полнотекстовый поиск использует синтаксис match(field) against('text'). Если вы хотите запустить полнотекстовый поиск, у вас должен быть полный текстовый индекс в столбцах, в которых вы его используете.

Существует три типа поиска Full Text. Я приведу руководство, потому что думаю, что он говорит лучше:

  • Логический поиск интерпретирует строку поиска, используя правила специальный язык запросов. Струна содержит слова для поиска. Это могут также содержать операторы, которые указать требования, чтобы слово должны присутствовать или отсутствовать в совпадении строк или что он должен быть взвешен выше или ниже обычного. общий такие слова, как "некоторые" или "затем", стоп-слова и не совпадают, если они присутствуют в строке поиска. IN BOOLEAN Модификатор MODE задает логическое значение поиск. Для получения дополнительной информации см. Раздел 11.9.2, "Логический полный текст Поисковые запросы".

  • Поиск на естественном языке интерпретирует строку поиска как фраза в естественном человеческом языке (a фраза в свободном тексте). Нет специальные операторы. Список остановок применяется. Кроме того, слова, которые присутствует в 50% или более строк считаются общими и не совпадают. Полнотекстовые поиски являются естественными поиск по языку, если модификатор отсутствует учитывая.

  • Поиск запроса запроса - это модификация естественного языка поиск. Строка поиска используется для выполнять поиск по естественному языку. Затем слова из наиболее релевантных строк возвращаемые поиском, добавляются к строка поиска и поиск сделано снова. Запрос возвращает строки от второго поиска. С QUERY Модификатор EXPANSION задает запрос поиск расширения. Для большего информацию см. в разделе 11.9.3, "Полнотекстовые поиски с запросом Расширение".

Для получения дополнительной информации возьмите gander на странице Полнотекстовый поиск по ссылке.