ম্যাজেন্টোতে সূচকগুলি কীভাবে কাজ করে


30
  1. ম্যাজেন্টোতে সূচকগুলি কীভাবে কাজ করে
  2. এটা ঠিক কি করে?
  3. কেন এটি প্রয়োজন?

এই লিঙ্কটি: স্ট্যাকওভারফ্লো / প্রশ্নগুলি / 4945307/… আপনাকে সহায়তা করা উচিত
টিবিআই ইনফোটেক


আপনি ম্যাজেন্টোর কোন সংস্করণ ব্যবহার করছেন? বেশিরভাগ পরিবর্তন v1.13 এ করা হয়েছে - সুতরাং সংস্করণটির পূর্ববর্তী সংস্করণে পার্থক্য আশা করুন। এমভিউ মডিউলটি ব্যাখ্যা করে এবং ম্যাজেন্টোর 1.13 সংস্করণে সূচীকরণ করার জন্য এখানে একটি দুর্দান্ত ব্লগ পোস্ট রয়েছে: এসচরেড
পিট

উত্তর:


63

ম্যাজেন্টোতে বিভিন্ন ধরণের সূচক রয়েছে।
দ্রুত সূচকগুলি চালানোর জন্য সমস্ত সূচক রয়েছে।
আমি তাদের মধ্যে কেবল কয়েকটি এখানে আবরণ করব।

ফ্ল্যাট সূচক
এই জাতীয় 2 সূচক আছে। বিভাগগুলির জন্য একটি এবং পণ্যগুলির জন্য একটি।
ডিফল্টরূপে বিভাগ এবং পণ্য সত্তা (এবং গ্রাহক এবং গ্রাহকের ঠিকানা তবে তারা এই পরিস্থিতিতে গুরুত্বপূর্ণ নয়) হ'ল ইএভি সত্তা। এটি এক্সটেনসিবিলিটির জন্য খুব সুন্দর। তবে এটি একটি পারফরম্যান্স কিলার কারণ সমস্ত গুণাবলীর জন্য সমস্ত মান পেতে আপনার অনেকগুলি যোগদান বা একাধিক ক্যোয়ারী প্রয়োজন need
ফ্ল্যাট ইনডেক্সারটি এখানে আসে।
এটি EAV কাঠামোটিকে একটি সমতল কাঠামোতে রূপান্তর করে। আমি বলতে চাইছি এটি একটি টেবিল তৈরি করে (ম্যাজেন্টোতে প্রতিটি স্টোর ভিউয়ের জন্য একটি) যার একটি বৈশিষ্ট্যের সাথে সম্পর্কিত একটি কলাম রয়েছে। এটি নির্বাচনগুলি আরও দ্রুত করে তোলে। বিভাগগুলির জন্য সমস্ত বৈশিষ্ট্য টেবিল কলামে রূপান্তরিত হয়। কেবলমাত্র পণ্যগুলির জন্য আপনি 'পণ্য তালিকার জন্য ব্যবহৃত' হিসাবে চিহ্নিত করেছেন কারণ আপনি বিভিন্ন গুণাবলী সহ সমস্ত প্রকারের পণ্য বিক্রি করতে পারেন এবং গাজিলিয়ান কলাম দিয়ে একটি টেবিল তৈরি করা সম্ভব নাও হতে পারে।
এছাড়াও, কিছু পণ্য অক্ষম থাকতে পারে বা কোনও নির্দিষ্ট ওয়েবসাইটের সাথে নাও থাকতে পারে এবং অনুসন্ধানের জন্য এন্ট্রিগুলিতে সেগুলি অন্তর্ভুক্ত করার দরকার নেই। এগুলি সূচক দ্বারা বাদ দেওয়া হয়।
উত্পন্ন ফ্ল্যাট টেবিলগুলি ফ্রন্টে ডেটা পড়ার জন্য ব্যবহৃত হয়। ব্যাকএন্ড এখনও EAV কাঠামো ব্যবহার করে।

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

পণ্যের দাম
একটি পণ্যের দাম অনেক পরিবর্তনশীল দ্বারা প্রভাবিত হতে পারে। উদাহরণস্বরূপ, গ্রাহক গ্রুপ, ওয়েবসাইট, ক্যাটালগ ছাড়ের নিয়ম।
উপরের মতো একই, তাদের দাম সহ পণ্যগুলি পাওয়ার অর্থ অনেকগুলি যোগদান বা একাধিক বাছাইয়ের অর্থ। এছাড়াও বান্ডিল পণ্যগুলিতে একটি অদ্ভুত দামের ব্যবস্থা রয়েছে। এই সূচকটি কিছু টেবিলগুলিতে ডেটা একত্রিত করে ( catalog_product_index_price_*) এবং নির্বাচনগুলি (বাছাই এবং ফিল্টারিং) অনেক সহজ করে তোলে।

ক্যাটালগ ইউআরএল
পুনর্লিখনগুলি কোন url কোন পণ্য বা বিভাগের সাথে সম্পর্কিত তা নির্ধারণ করে এটি url পুনর্লিখনের নিয়মগুলি পরিষ্কার করে। ইউআরএল পরিচালনার অভ্যন্তরীণ সিস্টেমের পক্ষে কোনও অন-স্ট্যান্ডার্ড ইউআরএল কল করার সময় কোন পৃষ্ঠাটি দেখার উচিত তা সিদ্ধান্ত নেওয়া সহজ। সমস্ত পণ্য এবং বিভাগের URL কীগুলি অনুসন্ধান করার পরিবর্তে এটি কেবল একটি টেবিলটিতে অনুসন্ধান করে।

বিভাগের পণ্যগুলি
ম্যাজেন্টোতে আপনি 'ইস অ্যাঙ্কর' নামের একটি বিভাগের বৈশিষ্ট্যটি সত্য বা মিথ্যাতে সেট করতে পারেন। যদি এটি সত্য হয় তবে এর অর্থ হল যে প্রশ্নের বিভাগে এটির শিশু বিভাগ থেকে সমস্ত পণ্য তালিকাভুক্ত করা হবে। আবার, এই রিয়েলটাইমটি নির্ধারণ করা কেবল একটি টেবিল পড়ার চেয়ে আরও বেশি সংস্থান গ্রহণ করবে। এই সূচকটি আপনার ব্যাকএন্ডে সেট করা সমিতিগুলির ভিত্তিতে এবং বিভাগগুলিতে 'ইস অ্যাঙ্কার' পতাকাের ভিত্তিতে পণ্য এবং বিভাগগুলির মধ্যে সমিতি তৈরি করে।

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

পণ্যের বৈশিষ্ট্য
এটি একই কারণে স্তরযুক্ত নেভিগেশনে ব্যবহার করা যেতে পারে এমন সমস্ত বৈশিষ্ট্য সংগ্রহ করে। দ্রুত পড়ার জন্য তাদের সকলকে এক জায়গায় রেখে দেওয়া।

ট্যাগ একীকরণ এটি
কি করে আমার কোনও ধারণা নেই। আমি কখনই বাস্তব লাইভ প্রকল্পে ট্যাগ ব্যবহার করি নি।


ধন্যবাদ মারিয়াস এটি এখন পর্যন্ত সেরা উত্তর ... আমি পেয়েছি
সোনাম

যখন আপনি বলেছিলেন যে ফ্ল্যাট টেবিলগুলি কেবল সম্মুখভাগে ব্যবহৃত হয় (এবং ব্যাকএন্ড এখনও EAV কাঠামো ব্যবহার করে) তখন আপনার অর্থ কী ছিল? আমি একজন নবাগত এবং আমি যা বুঝতে পেরেছিলাম, যখন আমরা পণ্যগুলির মতো সত্ত্বা তৈরি / আপডেট করি, তখনও এটি অপারেশনগুলি করতে EAV টেবিলগুলি ব্যবহার করে এবং সেগুলি সংরক্ষণ করার জন্য বা ম্যানুয়ালি আপডেট করার জন্য আমাদের ফ্ল্যাট টেবিলগুলি আপডেট করার বিকল্প স্থাপন করতে হবে এই পরিবর্তনগুলি ফ্ল্যাট টেবিলগুলিতে প্রতিবিম্বিত হতে। আপনি যখন এই কথাটি বলেছিলেন তখন কি আপনি এই প্রক্রিয়াটি উল্লেখ করছেন? আপনি এই দয়া করে বিস্তারিত বলতে পারেন? ধন্যবাদ!
ভরদ্বাজ শ্রীগিরিরাজু

1
@ মারিয়াস: পুনরায় সূচকের সময়, আমি টেবিলের পুরো ত্রুটি পাচ্ছি। সাহায্য করুন. আমি যে ত্রুটিটি পাচ্ছি তা হ'ল টেবিল 'ক্যাটালগ_পরিশোধক_প্রদেশ_প্রেস_বান্ডেল_সেলার_টিএমপি' পূর্ণ
জেড ব্ল্যাকবার্ড

1
@ মারিয়াস এই উত্তরটির 3 বছর পরে এখন আপনার কি ট্যাগ ট্যাগ সমষ্টি সম্পর্কে কোনও ধারণা আছে, এটি কি পণ্যের ট্যাগের সাথে সম্পর্কিত ??
মুরতুজা জাবাওয়ালা

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

11

এটির জন্য মূল পোস্ট থেকে নেওয়া হিসাবে এটির জন্য ক্রেডিট নিতে পারবেন না: https://stackoverflow.com/questions/4945307/can-someone-explain-magentos-indexing-feature-in-detail

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

আরও একটি "সাধারণ" মাইএসকিউএল ডাটাবেসে ক্যাটালগ পণ্যগুলি সংরক্ষণ করার জন্য একটি সারণী এমন কিছু কাঠামোযুক্ত করা হবে:

PRODUCT:
    product_id INT
    sku        VARCHAR
    name       VARCHAR
    size       VARCHAR
    longdesc   VARCHAR
    shortdesc  VARCHAR
    ... etc ...

এটি পুনরুদ্ধারের জন্য দ্রুত, তবে এটি এক টুকরো ইকমার্স সফ্টওয়্যারটির জন্য একটি মৌলিক সমস্যা ছেড়ে দেয়: আপনি আরও গুণাবলী যুক্ত করতে চাইলে আপনি কী করবেন? আপনি যদি খেলনা বিক্রি করেন এবং আকার আকারের কলামের চেয়ে আপনার বয়স_আরঞ্জ দরকার? ঠিক আছে, আপনি অন্য কলাম যুক্ত করতে পারেন, তবে এটি পরিষ্কার হওয়া উচিত যে একটি বড় স্টোরে (উদাহরণস্বরূপ ওয়ালমার্ট মনে করুন), এর ফলে সারিগুলি 90% খালি থাকে এবং নতুন বৈশিষ্ট্য রক্ষণাবেক্ষণের চেষ্টা অসম্ভবের কাছাকাছি।

এই সমস্যাটি মোকাবেলায়, ম্যাজেন্টো টেবিলগুলি ছোট ইউনিটে বিভক্ত করে। আমি এই উত্তরে পুরো EAV সিস্টেমটি পুনরায় তৈরি করতে চাই না, সুতরাং দয়া করে এই সরলিকৃত মডেলটি গ্রহণ করুন:

PRODUCT:
    product_id INT
    sku        VARCHAR

PRODUCT_ATTRIBUTE_VALUES
    product_id   INT
    attribute_id INT
    value        MISC

PRODUCT_ATTRIBUTES
    attribute_id
    name

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

তবে এই নমনীয়তাটি ব্যয় করে আসে at আমি যদি আমার সিস্টেমে কোনও শার্টের রঙ (একটি তুচ্ছ উদাহরণ) খুঁজে পেতে চাই তবে আমার সন্ধান করতে হবে:

  1. আইটেমের product_id (পণ্য সারণীতে)
  2. রঙের জন্য অ্যাট্রিবিউট_আইডি (বৈশিষ্ট্য সারণীতে)
  3. শেষ অবধি, আসল মান (বৈশিষ্ট্য_মূল্য সারণীতে)

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

এই ফলাফলগুলির সারণী হ'ল ম্যাজেন্টো "সূচী"। যখন আপনি পুনরায় সূচি রাখবেন, আপনি পুরানো টেবিলটি ফুটিয়ে তুলছেন এবং আবার এটি তৈরি করছেন।

আশা করি বিষয়গুলি কিছুটা স্পষ্ট করে!


nuke it from space, দুর্দান্ত :)
উইটেস

5

ম্যাজেন্টো একটি দুর্দান্ত শক্তিশালী এবং জটিল সিস্টেম। এটি প্রচুর পরিমাণে ডেটা দিয়ে কাজ করতে দেয়, তবে যখন প্রচুর রেকর্ডের সাথে ডাটাবেস ওভারলোড হয় তা ভারী এবং ধীর হয়ে যায়। ম্যাজেন্টো এই সমস্যাটি সমাধান করতে সূচি ব্যবহার করে। সূচকগুলি হ'ল কিছু ফ্ল্যাট ডেটা সহ অতিরিক্ত ডাটাবেস টেবিল, যা ডাটাবেস থেকে দ্রুত প্রতিক্রিয়াগুলি সংগঠিত করতে দেয়।

ডিফল্টরূপে, প্রতিটি সিস্টেমের সংরক্ষণে কোর সিস্টেম সূচি আপডেট করে। তবে কিছু ক্ষেত্রে আপনাকে এটি ম্যানুয়ালি করতে হবে, উদাহরণস্বরূপ কিছু ধরণের গণ ক্রিয়া ইত্যাদি You তবে কখনও কখনও এটি সমস্যার কারণ হয়।

উদাহরণস্বরূপ, আপনার যদি 10 কে + পণ্য এবং প্রচুর বিভাগ থাকে তবে 'ক্যাটালগ ইউআরএল পুনর্লিখন' সূচকটি পুনর্নির্মাণে কয়েক ঘন্টা সময় নিতে পারে। তারপরে পিএইচপি স্ক্রিপ্টটি কেবলমাত্র সর্বোচ্চ_অজুগতি_সময়ের ছাড়িয়ে যেতে পারে। কমান্ড লাইন থেকে পুনর্নির্দেশ প্রক্রিয়া চালিয়ে বেশ কয়েকটি সমস্যা সমাধানের উপায় রয়েছে।

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