Spec-Zone .ru
спецификации, руководства, описания, API
|
У MySQL есть встроенный синтаксический анализатор, который он использует по умолчанию для полнотекстовых операций (анализирующий текст, который будет индексирован, или анализирующий строку запроса, чтобы определить сроки, которые будут использоваться для поиска). Для полнотекстовой обработки "парсинг" означает извлекать слова из текста или строки запроса, основанной на правилах, которые определяют, какие символьные последовательности составляют слово и где границы слова лежат.
Анализируя для того, чтобы индексировать цели, синтаксический анализатор передает каждое слово к серверу, который добавляет, что это к полнотекстовому индексирует. Анализируя строку запроса, синтаксический анализатор передает каждое слово к серверу, который накапливает слова для использования в поиске.
Свойства парсинга встроенного полнотекстового синтаксического анализатора описываются в Разделе
12.9, "Полнотекстовые Функции Поиска". Эти свойства включают правила для того, чтобы определить,
как извлечь слова из текста. Синтаксический анализатор - под влиянием определенных системных переменных такой
как ft_min_word_len
и ft_max_word_len
те слова причины короче или дольше быть исключенным, и
списком stopword, который идентифицирует общие слова, которые будут проигнорированы.
Сменный API позволяет Вам обеспечить полнотекстовый собственный синтаксический анализатор так, чтобы Вы управляли основными режимами работы синтаксического анализатора. Плагин синтаксического анализатора может работать в любой из двух ролей:
Плагин может заменить встроенный синтаксический анализатор. В этой роли плагин читает ввод, который будет проанализирован, разделяет это на слова, и передает слова к серверу (или для того, чтобы индексировать или для накопления слова).
Одна причина использовать синтаксический анализатор, которым состоит в том этот путь, что Вы должны использовать различные правила от таковых из встроенного синтаксического анализатора для того, чтобы определить, как разделить ввод на слова. Например, встроенный синтаксический анализатор считает текст "чувствительным к регистру", чтобы состоять из двух слов "случай" и "чувствительный", тогда как приложение, возможно, должно было бы обработать текст как отдельное слово.
Плагин может действовать в соединении со встроенным синтаксическим анализатором,
служа фронтэндом для этого. В этой роли плагин извлекает текст из ввода и передает текст к
синтаксическому анализатору, который разделяет текст на слова, используя его нормальные правила
парсинга. В частности на этот парсинг будут влиять ft_
системные переменные и список stopword. xxx
Одна причина использовать синтаксический анализатор, которым состоит в том этот путь, что Вы должны
индексировать контент, такой как документы в формате PDF, XML-документы, или .doc
файлы. Встроенный синтаксический анализатор не предназначается для тех типов ввода, но плагин может
вытащить текст из этих входных источников и передать его к встроенному синтаксическому анализатору.
Для плагина синтаксического анализатора также возможно работать в обеих ролях. Таким образом, это могло извлечь текст из ввода непростого текста (роль фронтэнда), и также проанализировать текст в слова (таким образом заменяющий встроенный синтаксический анализатор).
Полнотекстовый плагин связывается с полнотекстовым, индексирует на на - индексируют основание. Таким образом,
когда Вы устанавливаете плагин синтаксического анализатора первоначально, который не заставляет это
использоваться для любых полнотекстовых операций. Это просто становится доступным. Например, полнотекстовый
плагин синтаксического анализатора становится доступным, чтобы быть названным в a WITH
PARSER
пункт, создавая человека FULLTEXT
индексирует. Чтобы создать
такой индексировать во время табличного создания, сделайте это:
CREATE TABLE t( doc CHAR(255), FULLTEXT INDEX (doc) WITH PARSER my_parser) ENGINE=MyISAM;
Или можно добавить индексирование после того, как таблица была составлена:
ALTER TABLE t ADD FULLTEXT INDEX (doc) WITH PARSER my_parser;
Единственное изменение SQL для того, чтобы связать синтаксический анализатор с индексированием WITH PARSER
пункт. Поискы определяются как прежде без изменений, необходимых для
запросов.
Когда Вы связываете плагин синтаксического анализатора с a FULLTEXT
индексируйте,
плагин требуется для того, чтобы использовать индексирование. Если плагин синтаксического анализатора
отбрасывается, любой индексирует связанный с ним, становится неприменимым. Любая попытка использовать это
таблица, для которой плагин не является доступными результатами по ошибке, хотя DROP TABLE
все еще возможно.
Для получения дополнительной информации о полнотекстовых плагинах, см. Раздел 22.2.4.4, "Пишущий Полнотекстовые Плагины Синтаксического анализатора".