টেবিল বা সূচিযুক্ত ভিউতে কোনও কন্টেইনস বা ফ্রিটেক্সট প্রিপিকেট ব্যবহার করতে পারে না কারণ এটি পূর্ণ-পাঠ্য সূচিবদ্ধ নয়


98

আমি আমার এসকিউএল সার্ভার ২০০৮ আর 2 ডাটাবেসে নিম্নলিখিত ত্রুটি পেয়ে যাচ্ছি:

টেবিল বা ইনডেক্সড ভিউ 'tblArmy' তে একটি CONTAINSবা FREETEXTশিকারী ব্যবহার করতে পারে না কারণ এটি পূর্ণ-পাঠ্য সূচকযুক্ত নয়।


4
আপনি কি আসলে একটি সম্পূর্ণ পাঠ্য ক্যাটালগ তৈরি করেছেন?
অ্যালেক্স কে।

উত্তর:


113
  1. আপনার পূর্ণ-পাঠ্য অনুসন্ধান বৈশিষ্ট্য ইনস্টল রয়েছে কিনা তা নিশ্চিত করুন।

    পূর্ণ-পাঠ্য অনুসন্ধানের সেটআপ

  2. পূর্ণ-পাঠ্য অনুসন্ধানের ক্যাটালগ তৈরি করুন।

     use AdventureWorks
     create fulltext catalog FullTextCatalog as default
    
     select *
     from sys.fulltext_catalogs
    
  3. পূর্ণ পাঠ্য অনুসন্ধান সূচক তৈরি করুন।

     create fulltext index on Production.ProductDescription(Description)
     key index PK_ProductDescription_ProductDescriptionID
    

    আপনি সূচি তৈরির আগে নিশ্চিত করুন:
    - আপনার টেবিলে ইতিমধ্যে পূর্ণ-পাঠ্য অনুসন্ধান সূচক নেই, কেবলমাত্র একটি টেবিলের মধ্যে কেবলমাত্র একটি পূর্ণ-পাঠ্য অনুসন্ধান সূচক অনুমোদিত
    - টেবিলে একটি অনন্য সূচক বিদ্যমান। সূচিটি অবশ্যই একক-কী কলামের উপর ভিত্তি করে তৈরি করা উচিত, এটি NULL অনুমতি দেয় না।
    - সম্পূর্ণ পাঠ্য ক্যাটালগ বিদ্যমান। কোনও ডিফল্ট পূর্ণ-পাঠ্য ক্যাটালগ না থাকলে আপনাকে স্পষ্টভাবে পূর্ণ-পাঠ্য ক্যাটালগের নাম নির্দিষ্ট করতে হবে।

আপনি এসকিউএল সেভার ম্যানেজমেন্ট স্টুডিওতে 2 এবং 3 পদক্ষেপ করতে পারেন। অবজেক্ট এক্সপ্লোরারে, একটি টেবিলের ডান ক্লিক করুন, Full-Text indexমেনু আইটেমটি নির্বাচন করুন এবং তারপরে Define Full-Text Index...সাব-মেনু আইটেমটি নির্বাচন করুন। সম্পূর্ণ-পাঠ্য ইনডেক্সিং উইজার্ডটি আপনাকে প্রক্রিয়াটির জন্য গাইড করবে। এটি আপনার জন্য একটি সম্পূর্ণ-পাঠ্য অনুসন্ধান ক্যাটালগ তৈরি করবে যদি আপনার কাছে এখনও না থাকে।

এখানে চিত্র বর্ণনা লিখুন

আপনি এমএসডিএন এ আরও তথ্য পেতে পারেন


অ্যালেক্স ভাল তথ্য! দ্রষ্টব্য: Azure এসকিউএল ব্যবহারকারীদের জন্য, এটি এখনকার মতো অন্তর্ভুক্ত টেবিলটিকে সমর্থন করে না। এখানে দেখুন: এমএসডিএন.মাইক্রোসফট
লাইব্রেরি

: এছাড়াও, এসকিউএল এক্সপ্রেস উন্নত পরিষেবাগুলি ব্যবহার হলে, একটি সম্পূর্ণ লেখা ইনডেক্স তৈরি করতে এখানে দেখতে stackoverflow.com/questions/10407337/...
Termato

71

এর CONTAINSকার্যকারিতা: আপনি যদি কলামটিতে একটি সম্পূর্ণ পাঠ্য সূচক তৈরি করতে না চান এবং পারফরম্যান্স আপনার অগ্রাধিকারগুলির মধ্যে একটি না হয় তবে আপনি LIKEবিবৃতিটি ব্যবহার করতে পারেন যা কোনও পূর্ববর্তী কনফিগারেশনের প্রয়োজন নেই:

উদাহরণ: Q নাম্বার সমস্ত পণ্য সন্ধান করুন:

SELECT ID, ProductName
FROM [ProductsDB].[dbo].[Products]
WHERE [ProductsDB].[dbo].[Products].ProductName LIKE '%Q%'

4
লিংক । লাইক লেনদেন-এসকিউএল প্রিকেট কেবল অক্ষর নিদর্শনগুলিতে কাজ করে। এছাড়াও, আপনি বিন্যাসিত বাইনারি ডেটা অনুসন্ধান করতে LIKE প্রিকেট ব্যবহার করতে পারবেন না। তদ্ব্যতীত, অস্ট্রাস্ট্রাক্টড টেক্সট ডেটার বিপুল পরিমাণের বিরুদ্ধে একটি লাইক কোয়েরি একই ডেটার বিপরীতে সমতুল্য পূর্ণ-পাঠ্য ক্যোয়ারীর চেয়ে অনেক ধীর।
মনোলিস

4
আহ, মিষ্টি ... সহজ, চারদিকে এমন উপায় যার জন্য আপনি আপনার ইনস্টলারটি খনন করতে পারবেন না এবং আপনার পরিবেশ সেটিংসের সাথে ঘুরে দেখবেন go সাবাশ!
ক্রিস্টিন

21

আপনাকে অবশ্যই Full-Text-Indexডাটাবেসের সমস্ত টেবিলগুলিতে সংজ্ঞা দিতে হবে যেখানে আপনাকে এমন একটি কোয়েরি ব্যবহার করতে CONTAINSহবে যার সাথে কিছুটা সময় লাগবে।

পরিবর্তে আপনি LIKEটেবিলগুলির জন্য কোনও সেটিংস সামঞ্জস্য করার প্রয়োজন ছাড়াই এটি ব্যবহার করতে পারেন যা আপনাকে তাত্ক্ষণিক ফলাফল দেয়।

উদাহরণ:

SELECT * FROM ChartOfAccounts WHERE AccountName LIKE '%Tax%'

সাথে প্রাপ্ত একই ফলাফলটি পাওয়া CONTAINSযেতে পারে LIKE

ফলাফল দেখুন: এখানে চিত্র বর্ণনা লিখুন


এটি সত্যই চালাক
ওয়ান্ডার ওয়ার্কার

6
এটি দুর্দান্ত কৌশল, তবে এই উত্তরটি যেভাবে উচ্চারণ করা হয়েছে তা ভুল। এটি "কেবল ব্যবহার" করবেন না। এটি করার জন্য কয়েকটি গুরুতর পারফরম্যান্সের প্রভাব রয়েছে এবং যেহেতু এটিকে একটি উত্পাদন সিস্টেমে রাখে তাকে অন-ইনডেক্সড কলামে পুরো টেবিল স্ক্যান করার বিষয়ে খুব সাবধানতার সাথে চিন্তা করা উচিত।
সিএসে

3

সক্ষম / অক্ষম করুন সম্পূর্ণ পাঠ্য সন্ধানটি প্রসঙ্গ মেনুতে ধূসর। আমার ধারণা আমার সম্পূর্ণ পাঠ্য অনুসন্ধান ইনস্টল করতে হবে। আমি কীভাবে পূর্ণ পাঠ্য অনুসন্ধান ইনস্টল করতে পারি?
ডটনেটস্প্যারো

এসকিউএল সার্ভারের জন্য ইনস্টল চালান এবং ইনস্টল করা উপাদানগুলি (বা অনুরূপ কিছু) পরিবর্তনের জন্য একটি বিকল্প থাকা উচিত। ক্লিক করুন তারপরে উপযুক্ত সময়ে সম্পূর্ণ পাঠ্য চেক বাক্সটি চেক করুন এবং আপনার ভাল হওয়া উচিত। দুঃখিত, আমার এক হাত নেই বা আমি আরও সুনির্দিষ্ট নির্দেশনা দেব।
টম এইচ

@ হাই টম: এসকিউএল সার্ভার ২০০৮ আর 2 ইনস্টলারটি চালানোর সময় বৈশিষ্ট্যগুলি যুক্ত করার বিকল্পটি আমি দেখতে পাইনি।
ডটনেটস্প্যারো

1

আপনি সন্ধান করতে চান এমন নির্দিষ্ট ক্ষেত্রগুলিতে আপনাকে ফুলটেক্সট সূচক যুক্ত করতে হবে।

ALTER TABLE news ADD FULLTEXT(headline, story);

যেখানে "সংবাদ" হ'ল আপনার সারণী এবং "শিরোনাম, গল্প" ক্ষেত্রগুলি আপনি পুরো পাঠ্য সন্ধানের জন্য সক্ষম করতে চান না


1

সত্য সত্য কলাম কলাম সেট করার জন্য আরও একটি সমাধান আছে।

উদাহরণস্বরূপ এই সমাধানগুলি আমার পক্ষে কার্যকর হয়নি

ALTER TABLE news ADD FULLTEXT(headline, story);

আমার সমাধান।

  1. টেবিলের উপর রাইট ক্লিক করুন
  2. ডিজাইন
  3. আপনি যে কলামটি সম্পাদনা করতে চান তাতে ডান ক্লিক করুন
  4. সম্পূর্ণ পাঠ্য সূচক
  5. অ্যাড
  6. বন্ধ
  7. রিফ্রেশ

পরবর্তী পদক্ষেপ

  1. টেবিলের উপর রাইট ক্লিক করুন
  2. ডিজাইন
  3. আপনি যে কলামটি সম্পাদনা করতে চান তাতে ক্লিক করুন
  4. এমএসকিউএল এর নীচে আপনি "কলামের বৈশিষ্ট্য" ট্যাব পাবেন
  5. পূর্ণ-পাঠ্য স্পেসিফিকেশন -> (পূর্ণ-পাঠ্য সূচী হয়) সত্য হিসাবে সেট করা হয়েছে।

রিফ্রেশ

এমএসকিউএল ২০১৪ এর সংস্করণ


আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.