سؤال

حسنا هذا هو الوضع ..

أتمكن من البحث النص الكامل على طاولة ولكنه يعمل فقط في بعض الحقول ..

CREATE FULLTEXT CATALOG [defaultcatalog]
CREATE UNIQUE INDEX ui_staticid on static(id)
CREATE FULLTEXT INDEX ON static(title_gr LANGUAGE 19,title_en,description_gr LANGUAGE 19,description_en) KEY INDEX staticid ON [defaultcatalog] WITH CHANGE_TRACKING AUTO

الآن لماذا سيحقق ما يلي النتائج

Select * from static where freetext(description_en, N'str')

وهذا ليس (في حين أن كلاهما لديه نص مع شارع في ذلك ..)

Select * from static where freetext(description_gr, N'str')

(لقد جربت ذلك أيضا دون مواصفات اللغة - اليونانية في هذه الحالة) (تجميع قاعدة البيانات هي GREEK_CI_AS) BTW

Select * from static where description_gr like N'%str%'

سوف تعمل على ما يرام ..

جميع الحقول هي نوع NVARCHAR وحقول _GR النص الإنجليزية واليونانية .. (لا يهم)

كل المساعدة سوف تكون موضع تقدير كبير

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

المحلول

مجرد محاولة لمعرفة ما يحدث: ماذا تحصل مع هذا الاستعلام هنا؟

SELECT * FROM static WHERE FREETEXT(*, N'str')

إذا لم تقم بتحديد أي عمود بشكل صريح للبحث في - هل يعطيك النتائج المتوقعة؟

نقطة أخرى: أعتقد أن لديك معرف لغة خاطئة في بيانك. وفقا ل SQL Server Books Online:

عند تحديدها كسلسلة، يتوافق Language_term مع قيمة عمود الاسم المستعار في جدول نظام Syslanguages. يجب إرفاق السلسلة بعلامات اقتباس واحدة، كما هو الحال في "language_term". عند تحديد عدد صحيح، Language_term هو LCID الفعلي الذي يحدد اللغة.

ومن ما وجدته على شبكة الإنترنت البحث حول اليونانية هو 1032 - وليس 19. هل يمكنك تجربة 1032 بدلا من 19؟ هل هذا يحدث فرقا؟

مارك

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