2010-04-05 4 views
4

В полнотекстовом поиске MS SQL я использую ISABOUT в своих запросах.Что должно быть заменено ключевым словом SQL «ISABOUT» [устарело?]?

Например, это должен возвращать верхний 10 ProductIDs (PK) с RANK полем в таблице ProductDetails

SELECT * 
FROM CONTAINSTABLE(ProductDetails, *, ISABOUT("Nikon" WEIGHT (1.0), "Cameras" Weight(0.9)), 10) 

Тем не менее, в соответствии с SQL DocumentationISABOUT является устаревшим.

Итак, у меня есть два вопроса:

  1. Что ISABOUT быть заменены?
  2. ДЕЛАТЬ Мне даже НУЖНО любые дополнительные SQL Command? (IOW, просто поставил бы поисковую фразу «Nikon Cameras» лучше?)

То, что я изначально пытался достичь, состояло в том, чтобы весить первое слово наивысшим, затем второе слово ниже и продолжать спускаться до 0.5, где я бы просто оценил оставшиеся слова на 0,5.

Моей логикой (и, возможно, ее недостатком) было то, что наиболее релевантные поисковые слова людей обычно происходят в начале фразы (на английском языке).

  • Неужели я об этом ошибаюсь?
  • Есть ли лучший способ?
  • Я задаю слишком много вопросов? (^_^)

Спасибо всем за ваше время ...

ответ

6

Ваша ссылка выше, относится к Enterprise Search, но для SQL Server полнотекстового поиска, ISABOUT все еще поддерживается в рамках CONTAINS предиката и CONTAINSTABLE функция.

Этот вопрос был также освещен в форуме a post to the MSDN SQL Server Search.

+1

Спасибо за ссылку. Интересно. Я все еще немного расплывчатый от того, что делает ISABOUT. – Armstrongest

2

ISABOUT добавляет пользовательские весы к вашим словам, которые помогают в ранжировании возвращенных документов. Для CONTAINS() он не имеет никакого рейтинга, эта форма не влияет.