احتواء استعلام لا يتعرف على الكلمات الصغيرة
-
26-09-2019 - |
سؤال
أنا استخدم CONTAINSTABLE
للبحث عن عمودين جدول. بمجرد أن يحتوي البحث على كلمات صغيرة مثل "" لـ "لـ" A "، لا يعيد البحث أي نتائج حتى عندما تكون موجودة فعليًا في العمود.
مثال سريع. يحتوي العمود الذي يتم تفتيشه على النص. "يجب ترقية النظام"
بعد SQL إرجاع 0 صفوف
SELECT * FROM Incident WHERE (TicketNumber IN (
SELECT TicketNumber FROM [Action] FT_TBL INNER JOIN
CONTAINSTABLE(Action, Text, '"system" AND "needs" AND "to" AND "upgraded" AND NOT "Search Summary"') KEY_TBL ON FT_TBL.ID = KEY_TBL.[KEY]
UNION
SELECT TicketNumber FROM [Incident] FT_TBL INNER JOIN
CONTAINSTABLE(Incident, Subject, '"system" AND "needs" AND "to" AND "upgraded"') AS KEY_TBL ON FT_TBL.TicketNumber = KEY_TBL.[KEY]))
بمجرد حذف "إلى" ، يعمل بشكل جيد:
SELECT * FROM Incident WHERE (TicketNumber IN (
SELECT TicketNumber FROM [Action] FT_TBL INNER JOIN
CONTAINSTABLE(Action, Text, '"system" AND "needs" AND "upgraded" AND NOT "Search Summary"') KEY_TBL ON FT_TBL.ID = KEY_TBL.[KEY]
UNION
SELECT TicketNumber FROM [Incident] FT_TBL INNER JOIN
CONTAINSTABLE(Incident, Subject, '"system" AND "needs" AND "upgraded"') AS KEY_TBL ON FT_TBL.TicketNumber = KEY_TBL.[KEY]))
كيف يمكن CONTAINSTABLE
يمكن استخدامها مع هذه الكلمات الأصغر ، أو هل يجب تركها تمامًا؟ إذا كانت هذه الكلمات الأصغر ذات معنى فعليًا في البحث ، فكيف يمكن تضمينها في البحث؟
المحلول
هذه ليست "كلمات صغيرة" ، هذه كلمات شائعة موجودة في قائمة التوقف. يتم تجاهلها.
نرى كلمات التوقف والقوائم المتوقفة على بول.
نصائح أخرى
لطفا أنظر نهاية إجابتي عند إنشاء وإشراك قائمة إيقاف النص الكامل المخصص بدءًا من القائمة الفارغة. لقد راجعت ومعها خالي من الاستعلام الذي يعمل مع "إلى" ، "BE" ، "" ، "لـ" ، إلخ.
تحديث:
يجب أن يكون SQL Server 2005 mssql ftdata coaseeng.txt.
أود أن أوصى بعرض الإجابات على سؤال "كلمات الضوضاء في SQL Server 2005 Search Full Text Search"