Мой запрос ContainsTable не работает - пожалуйста, помогите :)

StackOverflow https://stackoverflow.com/questions/776908

Вопрос

У меня есть настройка полнотекстового каталога.Он имеет уникальное количество ключей 117 и содержит 19 элементов.В таблице всего 19 строк.

В таблице есть поле NVARCHAR(50), называемое ClientGuid.Это guid с каким-то странным текстом в конце.

например..

  1. 8b6ef4a504dd1a57f079180e7f6eb4a0(-)
  2. 8b6ef4a504dd1a57f079180e7f6eb4a0 (НОРМАЛЬНО)

(и нет, я не определял данные этого текстового поля - мы получаем их из стороннего API.

в любом случае, это мой sql и запрос, который я запускаю к нему.Когда я запускаю запрос, я получаю НУЛЕВЫЕ результаты обратно: (

ALTER FUNCTION [dbo].[Foo_HiJonSkeet]
(   
    @ClientGuid NVARCHAR(50)
)
RETURNS TABLE 
AS
RETURN 
(
    SELECT KEY_TBL.[Key] as LogEntryId,
        KEY_TBL.RANK as Relevance
    FROM CONTAINSTABLE(LogEntries, ClientGuid, @ClientGuid) AS KEY_TBL
)


SELECT * FROM  Foo_HiJonSkeet('8b')

Есть какие-нибудь предложения?Сервер - Sql Server 2008.

Это было полезно?

Решение

Вы можете попробовать следующую конструкцию:

SELECT * FROM  Foo_HiJonSkeet('"8b*"')

добавление двойных кавычек и звездочки после исходного поискового запроса.Это должно сработать.

Но в случае, если все результаты поиска будут похожи на пример, который вы опубликовали выше, я советую вам использовать LIKE заявление вместо использования полнотекстового поиска.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top