سؤال

أنا استخدم 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"

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top