هل يمكنك إجراء بحث وبحث عن الكلمات الأساسية باستخدام FREETEXT() على SQL Server 2005؟

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

سؤال

هناك طلب لجعل بحث SO افتراضيًا لوظيفة النمط AND على OR الحالي عند استخدام مصطلحات متعددة.

وكان الرد الرسمي:

ليست بهذه البساطة كما يبدو.نحن نستخدم SQL Server 2005 نص حر () الدالة، ولا يمكنني العثور على طريقة لتحديد AND مقابل.أو - هل يمكنك ذلك؟

فهل هناك طريقة؟

هناك عدد الموارد على ذلك أستطيع أن أجد، ولكن أنا لست خبيرا.

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

المحلول

حسنًا، هذا التغيير موجود - نستخدمه الآن CONTAINS() مع ضمني AND بدلاً من FREETEXT() والضمنية لها OR.

نصائح أخرى

بقدر ما رأيت، هو عليه لا من الممكن القيام به وعند استخدام FREETEXT() ضمن SQL 2005 (ولا 2008، afaik).

يتجاهل استعلام FREETEXT عوامل التشغيل المنطقية والقرب وأحرف البدل حسب التصميم.ومع ذلك يمكنك القيام بذلك:

WHERE FREETEXT('You gotta love MS-SQL') > 0
 AND FREETEXT('You gotta love MySQL too...') >  0

أو هذا ما أعتقده :)

-- الفكرة هي أن يتم تقييمها إلى قيمة منطقية، حتى تتمكن من استخدام عوامل التشغيل المنطقية.لا أعرف إذا كان هذا سيعطي خطأ أم لا.أعتقد أنه يجب عمل.لكن المواد المرجعية تشير إلى حقيقة أن هذا غير ممكن حسب التصميم.

يمكن أن يساعد استخدام CONTAINS() بدلاً من FREETEXT().

لقد بدأت للتو القراءة عن النص الحر لذا تحملوني.إذا كان ما تحاول القيام به هو السماح بالبحث عن علامة، مثل VB، والعثور أيضًا على الأشياء التي تحمل علامة VB6 وVisual Basic وVisualBasic وVB.Net، ألن يتم تعيين هذه القيم كمرادفات في قاموس المرادفات الخاص بقاعدة البيانات بدلاً من معلمات الاستعلام ؟

إذا كان هذا هو الحال بالفعل، فهذا الرابط على MSDN يشرح كيفية إضافة عناصر إلى المعجم.

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