Сопоставить словоформальные слова в определенном порядке с полнотекстовым поиском SQL Server - PullRequest
0 голосов
/ 25 октября 2018

Я хотел бы использовать Полнотекстовый поиск SQL Server , чтобы найти интонационные формы слов, которые встречаются в определенном порядке.Таким образом, слова method и apparatus будут соответствовать These are the methods I'm using with the apparatuses, но не This apparatus is used with these methods.

. Есть ли способ сделать это?Это кажется довольно простым, но я ничего не нашел.

Я пробовал CONTAINS с:

'NEAR((method,apparatus), MAX, TRUE) AND FORMSOF(INFLECTIONAL,method) AND FORMSOF(INFLECTIONAL,apparatus)'

'FORMSOF(INFLECTIONAL,NEAR((method,apparatus), MAX, TRUE))'

'NEAR((FORMSOF(INFLECTIONAL,method),FORMSOF(INFLECTIONAL,apparatus)), MAX, TRUE)'

1 Ответ

0 голосов
/ 03 ноября 2018

Проблема в том, что вы не можете объединить 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)

Они оба отлично работали со мной.Надеюсь, это поможет.

...