Проблема в том, что вы не можете объединить FORMSOF
с NEAR
(здесь ссылка ).Возможный способ сделать это (хотя и неэффективно) - попробовать все различные варианты 'method' и 'device' (если у вас нет других слов для поиска)Пример:
SELECT some_id
FROM some_table
WHERE CONTAINS(some_text, 'NEAR((method,apparatus), MAX, TRUE) OR NEAR((method,apparatuses), MAX, TRUE) OR NEAR((methods,apparatus), MAX, TRUE) OR NEAR((methods,apparatuses), MAX, TRUE)')
Другой вариант - использовать CHARINDEX
(что также может быть неэффективно), например:
SELECT some_id
FROM some_table
WHERE CONTAINS(some_text, 'FORMSOF(INFLECTIONAL,method) AND FORMSOF(INFLECTIONAL,apparatus)')
AND CHARINDEX('method', some_text) < CHARINDEX('apparatus', some_text)
Они оба отлично работали со мной.Надеюсь, это поможет.