سؤال

وأود أن تشغيل بحث مع MSSQL محرك النص الكامل حيث بالنظر إلى إدخال المستخدم التالية: "مربع هوليوود"

وأريد نتائج أن يكون كل من هوليوود ومربع [ق] في نفوسهم.

ويمكنني إنشاء أسلوب على خادم الويب (C #، ASP.NET) لإنتاج حيوي عبارة SQL مثل هذا:

SELECT TITLE
FROM MOVIES
WHERE CONTAINS(TITLE,'"hollywood*"')
AND CONTAINS(TITLE, '"square*"')

من السهل بما فيه الكفاية. ومع ذلك، أود أن هذا في إجراء مخزن لفائدة سرعة وأضاف والأمن لإضافة المعلمات.

هل يمكنني الحصول على كعكة بلدي وأكله أيضا؟

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

المحلول

وأنا وافقت مع أعلاه، والنظر في بنود و

SELECT TITLE
FROM MOVIES
WHERE CONTAINS(TITLE,'"hollywood*" AND "square*"')

ولكن يجب أن لا يكون لتقسيم الأحكام الإدخال، يمكنك استخدام متغير

SELECT TITLE
FROM MOVIES
WHERE CONTAINS(TITLE,@parameter)

وبالمناسبة بحث عن مصطلح المحدد (يحتوي على) بحث عن أي مصطلح في عبارة (FREETEXT)

نصائح أخرى

وكانت آخر مرة كان لي للقيام بذلك (مع خادم MSSQL 2005) انتهى بي الأمر يتحرك وظيفة البحث الكاملة لأكثر من لوسين (النسخة جافا، على الرغم من Lucene.Net موجود الآن أعتقد). كان يعلق آمالا كبيرة في البحث عن النص الكامل ولكن إزعاج هذه المشكلة بالتحديد لي الكثير فاكتفيت.

هل حاولت استخدام AND العامل المنطقي في سلسلة الخاص بك؟ أمرر في سلسلة الخام إلى بلدي sproc والأشياء 'AND' بين الكلمات.

http://msdn.microsoft.com/en-us/library /ms187787.aspx

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