مواضيع مماثلة
درس في كيفية التعامل مع خاصية في السيكوال سيرفر Full Text Index
صفحة 1 من اصل 1
درس في كيفية التعامل مع خاصية في السيكوال سيرفر Full Text Index
السلام عليكم ورحمة الله وبركاته,
تحية طيبة
وددت اليوم ان اقدم لرواد هذا المنتدى الزاخر بالمعرفة معلومة لطالما سألوني الكثير حولها
وهي كيفية التعامل مع خاصية Full Text Index
بدون ان اخوض بالمقدمات سوف ادخل بشكل مباشر لصلب الموضوع
تابع معي.
الخطوة الاولى
داخل برنامج السيكوال سيرفر نقوم بأنشاء جدول بالمواصفات التالية
رمز برمجي:
مع الملاحظة البسيطة والتي يجب ان تركز عليها
وهي ان خاصية full text index لا تعمل سوى مع الحقول التي تكون primary key او unique key
وبعد اكمالك انشاء الجدول الرجاء قم بأدخال بعض البيانات داخل هذا الجدول
الخطوة الثانية
في هذه الخطوة سوف نقوم full text index على قاعدة البيانات الخاصة بنا هذا وبالاضافة الى الجدول الذي انشئناه من اجل ان نوفر خاصية البحث داخل هذا الجدول
حيث يتوجب علينا انشاء category وذلك عن طريق الكود البرمجي التالي
رمز برمجي:
الخطوة الثالثة
في هذه الخطوة سوف نقوم بأنشاء full text index في جدولنا الذي قمنا بتوليده سابقآ
ولكن نحن بحاجة الى unique key id او primary key id لذى سوف نقوم بايجاد هذا الــ id عن طريق الكود التالي البسيط
رمز برمجي:
في الكود البرمجي السابق سوف يظهر لنا جميع اسماء القيود (constraint names) للجداول التي انشأناها داخل قاعدة البيانات الخاصة بنا
قم بأخذ نسخة من اسم القيد الخاص بالجدول G1lgamesh_Search المنشئ مسبقآ بالخطوة رقم واحد
بعد ذلك سوف نقوم بكتابة الكود البرمجي الخاص بأنشاء full text index
رمز برمجي:
نقوم بأستبدال العبارة ("PK__Tbl_Sear__3214EC0700551192")الموجودة بالكود السابق بأسم القيد الذي قمنا بنسخه في الكود البرمجي الذي سبق هذا
**
من الملاحظ اننا في عملية انشاءنا هذه قمنا بتوليد FULLTEXT INDEX على الحقل Title وكما اننا استعملنا اللغة الانكليزية واستدلينا عليها برقم اللغة 1033
الخطوة الرابعة
الان سوف نستطيع ان نستخدم خاصية البحث داخل الجدول المنشئ بأستخدام الفهرس المخصص لذلك
قم بعملية استعلام بسيطة بأستخدام الكود التالي
(
لي الاستعلامات السابقة تلاحظون بأننا قد قمنا بعملية استعلام مشروطة بأسم الحقل المراد البحث داخله وكذلك مررنا ماذا نريد للبحث,
الاستعلام الاول السابق سوف يقوم بأرجاع الصفوف التي تحتوي على كلمة Asp.Net في حقل الـــ Title
والاستعلام الثاني السابق سوف يقوم بأرجاع الصفوف صفوف ASP.Net الموجودة في العمود DESC
في بعض الاحيان النتائج تكون مخيبة عندما تقوم بأستعلام عن شئ ما وسوف تظهر لك رسالة مشؤومة
مفاد تلك الرسالة fdhost cannot be started هذا يعني بأن خدمة Full Text Index غير مفعلة لديك ولكي تقوم بتفعيلها قم بأتباع المسار التالي
وقم بعمل start automatic
انتهى
تحية طيبة
وددت اليوم ان اقدم لرواد هذا المنتدى الزاخر بالمعرفة معلومة لطالما سألوني الكثير حولها
وهي كيفية التعامل مع خاصية Full Text Index
بدون ان اخوض بالمقدمات سوف ادخل بشكل مباشر لصلب الموضوع
تابع معي.
الخطوة الاولى
داخل برنامج السيكوال سيرفر نقوم بأنشاء جدول بالمواصفات التالية
رمز برمجي:
- الكود:
Create Table G1lgamesh_Search
(
Id Int Primary Key Identity(1,1),
Title Varchar(500),
[Desc]Varchar(max)
مع الملاحظة البسيطة والتي يجب ان تركز عليها
وهي ان خاصية full text index لا تعمل سوى مع الحقول التي تكون primary key او unique key
وبعد اكمالك انشاء الجدول الرجاء قم بأدخال بعض البيانات داخل هذا الجدول
الخطوة الثانية
في هذه الخطوة سوف نقوم full text index على قاعدة البيانات الخاصة بنا هذا وبالاضافة الى الجدول الذي انشئناه من اجل ان نوفر خاصية البحث داخل هذا الجدول
حيث يتوجب علينا انشاء category وذلك عن طريق الكود البرمجي التالي
رمز برمجي:
- الكود:
CREATE FULLTEXT CATALOG ForTableSearch
الخطوة الثالثة
في هذه الخطوة سوف نقوم بأنشاء full text index في جدولنا الذي قمنا بتوليده سابقآ
ولكن نحن بحاجة الى unique key id او primary key id لذى سوف نقوم بايجاد هذا الــ id عن طريق الكود التالي البسيط
رمز برمجي:
- الكود:
SELECT * FROM INFORMATION_SCHEMA.TABLE_CONSTRAINTS
في الكود البرمجي السابق سوف يظهر لنا جميع اسماء القيود (constraint names) للجداول التي انشأناها داخل قاعدة البيانات الخاصة بنا
قم بأخذ نسخة من اسم القيد الخاص بالجدول G1lgamesh_Search المنشئ مسبقآ بالخطوة رقم واحد
بعد ذلك سوف نقوم بكتابة الكود البرمجي الخاص بأنشاء full text index
رمز برمجي:
- الكود:
CREATE FULLTEXT INDEX ON G1lgamesh_Search
(Title, [Desc] LANGUAGE 1033)
KEY INDEX PK__Tbl_Sear__3214EC0700551192
ON ForTableSearch
نقوم بأستبدال العبارة ("PK__Tbl_Sear__3214EC0700551192")الموجودة بالكود السابق بأسم القيد الذي قمنا بنسخه في الكود البرمجي الذي سبق هذا
**
من الملاحظ اننا في عملية انشاءنا هذه قمنا بتوليد FULLTEXT INDEX على الحقل Title وكما اننا استعملنا اللغة الانكليزية واستدلينا عليها برقم اللغة 1033
الخطوة الرابعة
الان سوف نستطيع ان نستخدم خاصية البحث داخل الجدول المنشئ بأستخدام الفهرس المخصص لذلك
قم بعملية استعلام بسيطة بأستخدام الكود التالي
(
- الكود:
Select * from G1lgamesh_Search Where Contains(Title,'Asp.Net')
(Select * from G1lgamesh_Search Where Freetext([Desc],'Asp.Net')
لي الاستعلامات السابقة تلاحظون بأننا قد قمنا بعملية استعلام مشروطة بأسم الحقل المراد البحث داخله وكذلك مررنا ماذا نريد للبحث,
الاستعلام الاول السابق سوف يقوم بأرجاع الصفوف التي تحتوي على كلمة Asp.Net في حقل الـــ Title
والاستعلام الثاني السابق سوف يقوم بأرجاع الصفوف صفوف ASP.Net الموجودة في العمود DESC
في بعض الاحيان النتائج تكون مخيبة عندما تقوم بأستعلام عن شئ ما وسوف تظهر لك رسالة مشؤومة
مفاد تلك الرسالة fdhost cannot be started هذا يعني بأن خدمة Full Text Index غير مفعلة لديك ولكي تقوم بتفعيلها قم بأتباع المسار التالي
- الكود:
SQL Server Tool->SQL Server Configuration Manage->Service->Full Text Search filter Demon Launcher
وقم بعمل start automatic
انتهى
صفحة 1 من اصل 1
صلاحيات هذا المنتدى:
لاتستطيع الرد على المواضيع في هذا المنتدى