سؤال

لدي إعداد كتالوج نص كامل. لديها عدد أساسي فريد من 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