Cassandra - Crear índice

Creando un índice usando Cqlsh

Puede crear un índice en Cassandra usando el comando CREATE INDEX. Su sintaxis es la siguiente:

CREATE INDEX <identifier> ON <tablename>

A continuación se muestra un ejemplo para crear un índice en una columna. Aquí estamos creando un índice para una columna 'emp_name' en una tabla llamada emp.

cqlsh:tutorialspoint> CREATE INDEX name ON emp1 (emp_name);

Crear un índice usando la API de Java

Puede crear un índice para una columna de una tabla usando el método execute () de la clase Session. Siga los pasos que se indican a continuación para crear un índice para una columna en una tabla.

Paso 1: crear un objeto de clúster

En primer lugar, cree una instancia de Cluster.builder clase de com.datastax.driver.core paquete como se muestra a continuación.

//Creating Cluster.Builder object
Cluster.Builder builder1 = Cluster.builder();

Agregue un punto de contacto (dirección IP del nodo) usando el addContactPoint() método de Cluster.Builderobjeto. Este método devuelveCluster.Builder.

//Adding contact point to the Cluster.Builder object
Cluster.Builder builder2 = build.addContactPoint( "127.0.0.1" );

Con el nuevo objeto constructor, cree un objeto de clúster. Para hacerlo, tienes un método llamadobuild() en el Cluster.Builderclase. El siguiente código muestra cómo crear un objeto de clúster.

//Building a cluster
Cluster cluster = builder.build();

Puede crear el objeto de clúster con una sola línea de código como se muestra a continuación.

Cluster cluster = Cluster.builder().addContactPoint("127.0.0.1").build();

Paso 2: crear un objeto de sesión

Cree una instancia del objeto Session usando el método connect () de Cluster clase como se muestra a continuación.

Session session = cluster.connect( );

Este método crea una nueva sesión y la inicializa. Si ya tiene un espacio de claves, puede establecerlo en el existente pasando el nombre del espacio de claves en formato de cadena a este método como se muestra a continuación.

Session session = cluster.connect(“ Your keyspace name ” );

Aquí estamos usando el KeySpace llamado tp. Por lo tanto, cree el objeto de sesión como se muestra a continuación.

Session session = cluster.connect(“ tp” );

Paso 3: ejecutar la consulta

Puede ejecutar consultas CQL utilizando el método execute () de la clase Session. Pase la consulta en formato de cadena o como un objeto de clase Statement al método execute (). Todo lo que pase a este método en formato de cadena se ejecutará en elcqlsh.

En el siguiente ejemplo, estamos creando un índice para una columna llamada emp_name, en una tabla llamada emp. Debe almacenar la consulta en una variable de cadena y pasarla al método execute () como se muestra a continuación.

//Query
String query = "CREATE INDEX name ON emp1 (emp_name);";
session.execute(query);

A continuación se muestra el programa completo para crear un índice de una columna en una tabla en Cassandra usando la API de Java.

import com.datastax.driver.core.Cluster;
import com.datastax.driver.core.Session;

public class Create_Index {
 
   public static void main(String args[]){

      //Query
      String query = "CREATE INDEX name ON emp1 (emp_name);";
      Cluster cluster = Cluster.builder().addContactPoint("127.0.0.1").build();
       
      //Creating Session object
      Session session = cluster.connect("tp");
 
      //Executing the query
      session.execute(query);
      System.out.println("Index created");
   }
}

Guarde el programa anterior con el nombre de la clase seguido de .java, busque la ubicación donde está guardado. Compile y ejecute el programa como se muestra a continuación.

$javac Create_Index.java
$java Create_Index

En condiciones normales, debería producir la siguiente salida:

Index created