2010-03-31 4 views
2

Кто-нибудь знает, можно ли выполнить поиск тезауруса вместе с ключевыми словами NEAR или AND/OR. Вот пример типа запроса я хочу запустить:SQL Server 2005. Полнотекстовый поиск. Необходимый тезаурус, работающий с ключевыми словами NEAR/AND/OR

SELECT Title, RANK 
      FROM Item INNER JOIN 
      CONTAINSTABLE(Item, Title, 'FORMSOF(Thesaurus, "red" NEAR "wine")') AS KEY_TBL 
      ON Item.ItemID = KEY_TBL.[KEY] 
    ORDER BY RANK DESC 

.... Но я получаю сообщение об ошибке:

ошибка синтаксиса около «NEAR» в условии поиска полнотекстового «FORMSOF (тезаурус,« красный »NEAR« вино »).

ответ

0

Синтаксис тезауруса немного отличается, то вы могли бы искать что-то вроде:

SELECT Title, RANK 
      FROM Item INNER JOIN 
      CONTAINSTABLE(Item, Title, 'FORMSOF(Thesaurus, "red") NEAR FORMSOF(Thesaurus, "wine")') AS KEY_TBL 
      ON Item.ItemID = KEY_TBL.[KEY] 
    ORDER BY RANK DESC 
1

Ближние и FormsOf не работают хорошо друг с другом. Прочитайте следующую ссылку Is it possible to combine NEAR and FORMSOF together in a fulltext search?

использование IsAbout

SELECT K.RANK, name, Description 
FROM  Diagnosis AS C 
INNER JOIN 
CONTAINSTABLE(diagnosis,name, 'ISABOUT (
FORMSOF(Thesaurus, "red"), 
FORMSOF(Thesaurus, "wine"))', 50) AS K 
ON C.ID = K.[KEY]; 
GO 
Смежные вопросы