كيفية التعامل مع مصطلحات البحث عن الأحرف في البحث عن MS-SQL Freetext؟

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

سؤال

أواجه مشكلة في بحث Freetext ، الذي يعمل حاليًا على خادم SQL 2000.

في جدول ما يقرب من 1.3 مليون صف يحتوي على أسماء للشركات ، أحاول استخدام استعلام Freetext. ومع ذلك ، نظرًا لأن SQL Server يخرج أحرفًا خاصة وأحرف واحدة عند إنشاء الفهرس الخاص به ، فإن رمزنا يفعل نفس الشيء عند إرسال الاستعلام.

على سبيل المثال ، ينتهي البحث مثل "Texas A&M" فقط إلى الاستعلام عن "تكساس" الذي يعيد الكثير من السجلات غير ذات الصلة.

ما هو أفضل ممارسة للتعامل مع هذه الأنواع من استعلامات البحث؟ هل سيتم تصحيح هذه المشكلة من خلال الترقية إلى إصدار أحدث من SQL Server؟

في هذه المرحلة ، لا يعد محرك فهرسة الطرف الثالث مثل Lucene خيارًا ، حتى لو كان سيصلح المشكلة ، التي لست متأكدًا منها.

هل كانت مفيدة؟

المحلول

يمكنك محاولة استخدام حرف واحد wildcard '_' على غرار:

WHERE myColumn like 'Texas_A_&_M'

أو

WHERE myColumn like 'Texas%A_&_M' 

نصائح أخرى

يمكنك التحقق مما إذا كانت تحسينات في SQL Server 2005 يمكنها حل مشكلتك:SQL Server 2005 Search Full Text: الداخلية والتحسينات, ، على وجه الخصوص حول كلمات الضوضاء في ميزات جديدة للمطور.

إذا كنت تبحث عن أسماء الشركات وليس مقاطع نصية طويلة ، فلماذا لا تستخدم مثل؟

...
WHERE
    CompanyName LIKE '%Texas A%&%M%'
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top