Почему, когда я создаю полнотекстовый индекс, мой запрос на совпадение / против не дает результатов? - PullRequest
0 голосов
/ 22 декабря 2010

Я создал FULLTEXT индекс ...

ALTER TABLE pads ADD FULLTEXT search (Keywords, ProgramName, English45)

ProgramName - это Varchar, однако, даже если я не добавлю это в индекс, я все равно не получу результатов. В моем списке индексов кардинальности 1 для этого индекса.

Вот запрос, который я использую.

select PadID from Pads WHERE MATCH(keywords,ProgramName,English45) 
 AGAINST('games')

Однако это моя цель.

select PadID from Pads WHERE MATCH(keywords,ProgramName,English45) 
 AGAINST('games') AND RemovemeDate = '2001-01-01 00:00:00' 
 ORDER BY VersionAddDate DESC

Вот мои поля таблицы пэдов. alt text

Мне нужен мой запрос, чтобы вернуть слово, где оно встречается, как часть трех полей.

1 Ответ

0 голосов
/ 24 декабря 2010

Я думаю, вы можете попробовать

MATCH(keywords,ProgramName,English45) 
AGAINST('games' in boolean mode)

стандартное поведение поиска

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

логический поиск

Логический поиск интерпретирует строку поиска, используя правила специального языка запросов. Строка содержит слова для поиска. Он также может содержать операторы, которые определяют требования так, что слово должно присутствовать или отсутствовать в совпадающих строках или быть взвешенным выше или ниже, чем обычно Общие слова, такие как «some» или «then», являются стоп-словами и не совпадают, если они присутствуют в строке поиска. Модификатор IN BOOLEAN MODE определяет логический поиск

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...