আমি আমার এসকিউএল সার্ভার ২০০৮ আর 2 ডাটাবেসে নিম্নলিখিত ত্রুটি পেয়ে যাচ্ছি:
টেবিল বা ইনডেক্সড ভিউ 'tblArmy' তে একটি
CONTAINS
বাFREETEXT
শিকারী ব্যবহার করতে পারে না কারণ এটি পূর্ণ-পাঠ্য সূচকযুক্ত নয়।
আমি আমার এসকিউএল সার্ভার ২০০৮ আর 2 ডাটাবেসে নিম্নলিখিত ত্রুটি পেয়ে যাচ্ছি:
টেবিল বা ইনডেক্সড ভিউ 'tblArmy' তে একটি
CONTAINS
বাFREETEXT
শিকারী ব্যবহার করতে পারে না কারণ এটি পূর্ণ-পাঠ্য সূচকযুক্ত নয়।
উত্তর:
আপনার পূর্ণ-পাঠ্য অনুসন্ধান বৈশিষ্ট্য ইনস্টল রয়েছে কিনা তা নিশ্চিত করুন।
পূর্ণ-পাঠ্য অনুসন্ধানের ক্যাটালগ তৈরি করুন।
use AdventureWorks
create fulltext catalog FullTextCatalog as default
select *
from sys.fulltext_catalogs
পূর্ণ পাঠ্য অনুসন্ধান সূচক তৈরি করুন।
create fulltext index on Production.ProductDescription(Description)
key index PK_ProductDescription_ProductDescriptionID
আপনি সূচি তৈরির আগে নিশ্চিত করুন:
- আপনার টেবিলে ইতিমধ্যে পূর্ণ-পাঠ্য অনুসন্ধান সূচক নেই, কেবলমাত্র একটি টেবিলের মধ্যে কেবলমাত্র একটি পূর্ণ-পাঠ্য অনুসন্ধান সূচক অনুমোদিত
- টেবিলে একটি অনন্য সূচক বিদ্যমান। সূচিটি অবশ্যই একক-কী কলামের উপর ভিত্তি করে তৈরি করা উচিত, এটি NULL অনুমতি দেয় না।
- সম্পূর্ণ পাঠ্য ক্যাটালগ বিদ্যমান। কোনও ডিফল্ট পূর্ণ-পাঠ্য ক্যাটালগ না থাকলে আপনাকে স্পষ্টভাবে পূর্ণ-পাঠ্য ক্যাটালগের নাম নির্দিষ্ট করতে হবে।
আপনি এসকিউএল সেভার ম্যানেজমেন্ট স্টুডিওতে 2 এবং 3 পদক্ষেপ করতে পারেন। অবজেক্ট এক্সপ্লোরারে, একটি টেবিলের ডান ক্লিক করুন, Full-Text index
মেনু আইটেমটি নির্বাচন করুন এবং তারপরে Define Full-Text Index...
সাব-মেনু আইটেমটি নির্বাচন করুন। সম্পূর্ণ-পাঠ্য ইনডেক্সিং উইজার্ডটি আপনাকে প্রক্রিয়াটির জন্য গাইড করবে। এটি আপনার জন্য একটি সম্পূর্ণ-পাঠ্য অনুসন্ধান ক্যাটালগ তৈরি করবে যদি আপনার কাছে এখনও না থাকে।
আপনি এমএসডিএন এ আরও তথ্য পেতে পারেন
এর CONTAINS
কার্যকারিতা: আপনি যদি কলামটিতে একটি সম্পূর্ণ পাঠ্য সূচক তৈরি করতে না চান এবং পারফরম্যান্স আপনার অগ্রাধিকারগুলির মধ্যে একটি না হয় তবে আপনি LIKE
বিবৃতিটি ব্যবহার করতে পারেন যা কোনও পূর্ববর্তী কনফিগারেশনের প্রয়োজন নেই:
উদাহরণ: Q নাম্বার সমস্ত পণ্য সন্ধান করুন:
SELECT ID, ProductName
FROM [ProductsDB].[dbo].[Products]
WHERE [ProductsDB].[dbo].[Products].ProductName LIKE '%Q%'
আপনাকে অবশ্যই Full-Text-Index
ডাটাবেসের সমস্ত টেবিলগুলিতে সংজ্ঞা দিতে হবে যেখানে আপনাকে এমন একটি কোয়েরি ব্যবহার করতে CONTAINS
হবে যার সাথে কিছুটা সময় লাগবে।
পরিবর্তে আপনি LIKE
টেবিলগুলির জন্য কোনও সেটিংস সামঞ্জস্য করার প্রয়োজন ছাড়াই এটি ব্যবহার করতে পারেন যা আপনাকে তাত্ক্ষণিক ফলাফল দেয়।
উদাহরণ:
SELECT * FROM ChartOfAccounts WHERE AccountName LIKE '%Tax%'
সাথে প্রাপ্ত একই ফলাফলটি পাওয়া CONTAINS
যেতে পারে LIKE
।
পূর্ণ-পাঠ্য ইনডেক্সিংয়ের জন্য আপনার টেবিলটি সক্ষম করার প্রয়োজন হতে পারে ।
আপনি সন্ধান করতে চান এমন নির্দিষ্ট ক্ষেত্রগুলিতে আপনাকে ফুলটেক্সট সূচক যুক্ত করতে হবে।
ALTER TABLE news ADD FULLTEXT(headline, story);
যেখানে "সংবাদ" হ'ল আপনার সারণী এবং "শিরোনাম, গল্প" ক্ষেত্রগুলি আপনি পুরো পাঠ্য সন্ধানের জন্য সক্ষম করতে চান না
সত্য সত্য কলাম কলাম সেট করার জন্য আরও একটি সমাধান আছে।
উদাহরণস্বরূপ এই সমাধানগুলি আমার পক্ষে কার্যকর হয়নি
ALTER TABLE news ADD FULLTEXT(headline, story);
আমার সমাধান।
পরবর্তী পদক্ষেপ
রিফ্রেশ
এমএসকিউএল ২০১৪ এর সংস্করণ
Select * from table
where CONTAINS([Column], '"A00*"')
% হিসাবে একই হিসাবে কাজ করবে
where [Column] Like 'A00%'