Квалификатор: Поскольку я не могу воссоздать это, я не могу точно знать, решит ли это проблему. Однако вот некоторые вещи, которые я вижу.
Прежде всего, амперсанд, знак фунта и точка с запятой - это символы переноса слов. Это означает, что вместо поиска строки «pétoncle» вы на самом деле ищете «p», «233» и «toncle». Понятно, что это не твое намерение.
Я должен предположить, что у вас есть текст "pétoncle" где-то в вашем наборе данных. Это означает, что вам нужно, чтобы вся эта строка была завершена.
Есть несколько вещей, которые вы можете сделать.
1) Выключите все стоп-слова вместе. Вы можете сделать это, изменив полнотекстовый индекс, чтобы отключить его.
Обратите внимание, что для вашей базы данных должна быть установлена совместимость с SQL Server 2008, чтобы не генерировать синтаксическую ошибку:
ALTER FULLTEXT INDEX ON Table1 SET STOPLIST OFF;
2) Создать новый стоп-лист
Если вы создадите пустой StopList, вы сможете добавить нужные вам стоп-слова или скопировать системный стоп-лист и удалить ненужные стоп-слова. (Я бы посоветовал второй подход).
Сказав это, я не смог найти & или # в системном стоп-листе, поэтому они могут быть жестко запрограммированы. Возможно, вам придется просто отключить стоп-лист.
3) Измените свой поиск, чтобы игнорировать регистр "pétoncle".
Если вы отбросите «pétoncle» из ISABOUT и измените их на «p toncle», это может сработать:
'ISABOUT("pétoncle" weight (.8), "p toncle" weight (.8))'
Это всего лишь некоторые идеи. Как я уже сказал, без возможности доступа к системе или воссоздания сценария мы не сможем сильно помочь.
Еще немного информации для вашего удовольствия от исследования: