إنشاء وإسقاط INDEX في Cassandra

Cassandra إنشاء فهرس

يقوم الأمر "إنشاء فهرس" بإنشاء فهرس في العمود المحدد من قبل المستخدم. إذا كانت البيانات موجودة بالفعل للعمود الذي تريد فهرسته، Cassandra يقوم بإنشاء فهارس على البيانات أثناء تنفيذ عبارة "إنشاء فهرس".

  • بعد إنشاء الفهرس، Cassandra يقوم بفهرسة البيانات الجديدة تلقائيًا عند إدراج البيانات.
  • لا يمكن إنشاء الفهرس على المفتاح الأساسي حيث أن المفتاح الأساسي مفهرس بالفعل.
  • الفهارس الموجودة على المجموعات غير مدعومة في Cassandra.
  • بدون فهرسة على العمود ، Cassandra لا يمكن تصفية هذا العمود إلا إذا كان مفتاحًا أساسيًا.

لهذا السبب، لتصفية الأعمدة Cassandra، يجب إنشاء الفهارس.

بناء الجملة

Create index IndexName on KeyspaceName.TableName(ColumnName);

مثال

فيما يلي اللقطة التي تمت فيها محاولة تصفية عمود "القسم" دون إنشاء الفهرس. ردا على ذلك، تم إرجاع الخطأ.

Cassandra إنشاء فهرس

هذه هي اللقطة حيث يتم إنشاء الفهرس في عمود القسم.

Cassandra إنشاء فهرس

Create index DeptIndex on University.Student(dept);

فيما يلي اللقطة التي سيتم فيها تصفية عمود "القسم" بنجاح.

Cassandra إنشاء فهرس

select * from University.Student where dept='CS';

Cassandra إسقاط الفهرس

الأمر "إسقاط الفهرس" يسقط الفهرس المحدد. إذا لم يتم تقديم اسم الفهرس أثناء إنشاء الفهرس، فسيكون اسم الفهرس هو TableName_ColumnName_idx.

  • إذا لم يكن الفهرس موجودًا، فسيُرجع خطأ ما لم يتم استخدام IF EXISTS فسيُرجع no-op.
  • أثناء إنشاء الفهرس، يجب عليك تحديد اسم مساحة المفتاح مع اسم الفهرس وإلا سيتم إسقاط الفهرس من مساحة المفتاح الحالية.

بناء الجملة

Drop index IF EXISTS KeyspaceName.IndexName

مثال

فيما يلي لقطة للأمر الذي تم تنفيذه "Drop Index" والذي يؤدي إلى إسقاط الفهرس DeptIndex.

Cassandra إسقاط الفهرس

drop index IF EXISTS University.DeptIndex;

بعد تنفيذ الأمر بنجاح، سيتم إسقاط DeptIndex من مساحة المفاتيح. الآن لا يمكن تصفية البيانات حسب قسم العمود.

تلخيص هذه التدوينة بـ: