Полнотекстовый поиск для отдельных символов - PullRequest
1 голос
/ 21 ноября 2008

У меня есть таблица со столбцом TEXT, где содержимое - это просто строки чисел CSV. Пример ", 1,76,77,115," Каждая строка может иметь произвольное количество чисел.

Я пытаюсь настроить полнотекстовое индексирование, чтобы быстро выполнять поиск в этом столбце. Это прекрасно работает. Вместо выполнения запросов с

where MY_COL LIKE '%,77,%' and MY_COL LIKE '%,115,%'

Я могу сделать

where CONTAINS(MY_COL,'77 and 115')

Однако, когда я пытаюсь найти один символ, он не работает.

where CONTAINS(MY_COL,'1')

Но я знаю, что должны быть возвращены записи! Я быстро обнаружил, что мне нужно отредактировать файл шума и перестроить индекс. Но даже после этого он все равно не работает.

Ответы [ 3 ]

2 голосов
/ 29 ноября 2008

Работать с реляционными базами данных так будет больно.

Используйте правильную схему. Сохраните значения в разных строках или используйте тип данных массива для столбца.

Это сделает решение проблемы тривиальным.

0 голосов
/ 05 декабря 2008

Согласовано. Как 12,15,33 не возвращает эту запись для поиска 1 с полным текстом? Используйте для этого фактическую схему таблиц.

0 голосов
/ 23 ноября 2008

Я исправил свою проблему, хотя я не совсем уверен, что ее решило.

Я удалил свою таблицу и заполнил новую (моя программа выполняет пакетную обработку) и создал новый полнотекстовый индекс. Возможно, я не был достаточно терпеливым, чтобы позволить перестройке индексации полностью.

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