Как я могу запросить Cassandra с помощью GraphQL, используя столбец, не являющийся первичным ключом?
Я использую GraphQL для работы с базой данных Cassandra. Следующий поисковый запрос отлично работает при фильтрации столбца с ключом раздела:
query oneUsers{
users(value: { username:"username" }) {
values {
id
name
username
}
}
}
Но при попытке поиска в других столбцах возникают следующие ошибки:
graphql: Exception while fetching data (/users) : org.apache.cassandra.stargate.exceptions.InvalidRequestException: Cannot execute this query as it might involve data filtering and thus may have unpredictable performance. If you want to execute this query despite the performance unpredictability, use ALLOW FILTERING
Как лучше всего искать столбцы в Cassandra с помощью GraphQL?
1 ответ
Вы можете извлекать записи из Cassandra, только указав (а) ключ раздела или (б) столбцы первичного ключа.
Если вы хотите фильтровать по столбцам, не являющимся первичными ключами, вам нужно будет создать индекс для столбца. Например, если вы хотите отфильтровать по , создайте индекс с помощью:
mutation createIndexes {
users: createIndex(
keyspaceName:"myks",
tableName:"users",
columnName:"id",
indexName:"id_idx"
)
}
Затем вы сможете запроситьid
.
Подробности и другие примеры см. в разделе Разработка с помощью Astra DB GraphQL API . Ваше здоровье!