Кассандра - Создать индекс
Создание индекса с использованием Cqlsh
Вы можете создать индекс в Cassandra, используя команду CREATE INDEX. Его синтаксис следующий -
CREATE INDEX <identifier> ON <tablename>
Ниже приведен пример создания индекса для столбца. Здесь мы создаем индекс столбца emp_name в таблице с именем emp.
cqlsh:tutorialspoint> CREATE INDEX name ON emp1 (emp_name);
Создание индекса с использованием Java API
Вы можете создать индекс для столбца таблицы, используя метод execute () класса Session. Следуйте инструкциям ниже, чтобы создать индекс для столбца в таблице.
Шаг 1. Создайте кластерный объект.
Прежде всего, создайте экземпляр Cluster.builder класс com.datastax.driver.core пакет, как показано ниже.
//Creating Cluster.Builder object
Cluster.Builder builder1 = Cluster.builder();
Добавьте точку контакта (IP-адрес узла), используя addContactPoint() метод Cluster.Builderобъект. Этот метод возвращаетCluster.Builder.
//Adding contact point to the Cluster.Builder object
Cluster.Builder builder2 = build.addContactPoint( "127.0.0.1" );
Используя новый объект построителя, создайте объект кластера. Для этого у вас есть метод под названиемbuild() в Cluster.Builderкласс. В следующем коде показано, как создать объект кластера.
//Building a cluster
Cluster cluster = builder.build();
Вы можете построить объект кластера, используя одну строку кода, как показано ниже.
Cluster cluster = Cluster.builder().addContactPoint("127.0.0.1").build();
Шаг 2. Создайте объект сеанса
Создайте экземпляр объекта Session с помощью метода connect () из Cluster класс, как показано ниже.
Session session = cluster.connect( );
Этот метод создает новый сеанс и инициализирует его. Если у вас уже есть пространство ключей, вы можете установить его на существующее, передав имя KeySpace в строковом формате этому методу, как показано ниже.
Session session = cluster.connect(“ Your keyspace name ” );
Здесь мы используем KeySpace под названием tp. Поэтому создайте объект сеанса, как показано ниже.
Session session = cluster.connect(“ tp” );
Шаг 3: Выполнить запрос
Вы можете выполнять запросы CQL, используя метод execute () класса Session. Передайте запрос в строковом формате или в виде объекта класса Statement методу execute (). Все, что вы передадите этому методу в строковом формате, будет выполнено наcqlsh.
В следующем примере мы создаем индекс для столбца emp_name в таблице с именем emp. Вы должны сохранить запрос в строковой переменной и передать его методу execute (), как показано ниже.
//Query
String query = "CREATE INDEX name ON emp1 (emp_name);";
session.execute(query);
Ниже приведена полная программа для создания индекса столбца в таблице в Cassandra с использованием Java API.
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");
}
}
Сохраните указанную выше программу с именем класса, за которым следует .java, перейдите в место, где она сохранена. Скомпилируйте и выполните программу, как показано ниже.
$javac Create_Index.java
$java Create_Index
В нормальных условиях он должен выдавать следующий результат -
Index created