MySQL полнотекстовый поиск с различными перестановками - PullRequest
0 голосов
/ 19 сентября 2011

Я создаю полнотекстовую поисковую систему mysql для своего сайта, и у меня есть страница расширенного поиска, которая позволяет пользователю ограничивать столбцы, в которых он хотел бы искать.Однако всякий раз, когда я делаю индекс полнотекстового поиска, должны использоваться все столбцы, используемые в этом индексе, иначе я получаю сообщение об ошибке.Есть ли способ сделать индекс MySQL для полного текста, где я могу использовать только некоторые из столбцов?

Например, у меня есть 5 столбцов в моем индексе, сделанном этим оператором:

ALTER TABLE table1 ADD FULLTEXT fulltext_index(subject, course, prof, semester, 
year);

Если бы я хотел искать только по теме и курсу, я бы получил ошибку:

#1191 - Can't find FULLTEXT index matching the column list 

Ответы [ 2 ]

1 голос
/ 19 сентября 2011

Вам просто нужно создать больше индексов для каждой возможной комбинации, которую вы хотите найти:

изменить таблицу table1 добавить полный текст fulltext_index2 (тема, курс);

изменить таблицу table1 добавить полный текст fulltext_index3 (курс, семестр, год);

И т.д ... посмотрим, решит ли это проблему.

0 голосов
/ 19 сентября 2011

Нет, для полнотекстового индекса необходимо использовать все столбцы. Если вы хотите использовать только некоторые из них, вам потребуется отдельный полнотекстовый индекс для каждой перестановки. Я не проверял это, но вы МОЖЕТЕ обойти это, используя только столбцы в указанном порядке. например индекс по столбцам (a, b, c) может позволить вам выполнять поиск только (a, b), потому что они перечислены первыми, но не (a, c) или (b, c).

...