2014-01-21 4 views
1

Допустим, у нас есть слово «ABCD1234EF» в тексте. Теперь, чтобы найти его, я должен сопоставить точное слово. Цель состоит в том, чтобы найти его по буквам «ABCD1234EF», «ABCD», «1234» или «EF». НЕ «CD12» или что-то в этом роде. Параметр «ft_min_word_len» установлен в 1.MySQL Полнотекстовые отдельные цифры и буквы?

Это единственный вариант, чтобы создать второй столбец и сохранить там разнесенные значения? Может ли это сделать MySQL?

Я нашел что-то на сайте MySQL http://dev.mysql.com/doc/refman/5.1/en/full-text-plugins.html. Но это вызывает больше вопросов, чем решает.

  • он заменяет оригинальный парсер mysql?
  • как скомпилировать его на компьютере с Windows?

ответ

0

Я думаю, что самый простой маршрут будет разделять вашу входную строку на три отдельных столбца с SQL (на основе something like this, возможно,).

Writting свой собственный полнотекстовый плагин по существу перемещает эту логику к более низкому с неопределенной добавленной стоимостью (reference):

Основная функция синтаксического анализа, simple_parser_parse(), выступает в качестве замены для встроенного полнотекстового парсер , поэтому ему нужно разделить текст на слова и передать каждое слово серверу.

Это также отвечает на ваш первый пулевой вопрос: эта процедура заменяет полнотекстового анализатор (не SQL-парсер, если это был ваш вопрос).

MySQL compilation instructions предусмотреть действия, специфичные для Windows.

+0

Действительно чистый подход SQL был бы идеальным. Но у меня есть две колонки, которые мне нужно индексировать. С несколькими словами, значениями с цифрами во всех возможных местах. Правило не применимо. Теперь я пытаюсь скомпилировать плагин без надлежащего инструмента. Все еще учусь. SQL-триггерное решение по-прежнему предпочтительнее. Любое другое решение, отличное от SQL, тоже будет работать, но я пытаюсь его избежать, потому что в моем приложении потребуется много изменений. –

Смежные вопросы