У меня есть база данных в SQL Server 2008 с индексами полнотекстового поиска. Я определил стоп-слово «al» в стоп-листе. Однако, когда я ищу любую фразу с ключевым словом «al», слово «al» по-прежнему используется в рейтинге.
Это может быть связано с тем, что я разбиваю условия поиска и реконструирую их. Затем я выполняю поиск по нескольким полям и ранжирую результаты: http://pastebin.com/fdce11ff. Эта функция разбивает поиск
'al hamra'
в
("*al*" ~ "*hamra*") OR ("*al*" OR "*hamra*")
для полнотекстового поиска.
Представьте себе этот сценарий:
Имя: Аль Хамра, Автор: Джек Браун, Жанр: Художественная литература Аль Караван, Автор: Аль Ханц, Жанр: Романтика
Теперь поиск по запросу 'al hamra' будет возвращать 'Al Karawan', несмотря на то, что 'al' находится в стоп-листе. Почему это? Я думал, стоп-листы заставят слова потерять свой вес?