[SOLVED] Create OR query to receive documents where one or multiple attributes fits a search term
- 0
- Databases
- Web
- Self Hosted

Excellent. so that works, and I would want to use variables.

right...so if you're passing in variables, you can put Query.search("attr", "value")
for the variable value

It's confusing when you switch between different syntax.

I tried this query
queries: ["search(\"group_a\", \"hello\")","search(\"group_b\", \"hello\")"]
ERROR:
Search method requires fulltext index: group_a,group_b
Is there an $or operator?

no you can't search against multiple attributes like that. that will be treated like AND. you must execute multiple queries

How would I fix this in a single request?

with graphql you can make muliple api calls in 1

yes

query search($databaseId: String!, $collectionId: String!, $search1: String, $search2: String) {
search1: databasesListDocuments (
databaseId: $databaseId
collectionId: $collectionId
queries: [$search1]
) {
total
documents{
_id
_createdAt
_updatedAt
_permissions
data
}
}
search2: databasesListDocuments(
databaseId: $databaseId
collectionId: $collectionId
queries: [$search2]
) {
total
documents{
_id
_createdAt
_updatedAt
_permissions
data
}
}
}

Thanks. I can't figure out how to escape the usage of the search variable in the queries

Why do some Strings! contain a bang?

what exactly is your code?

That's graphQL syntax for non-nulable. see https://graphql.org/learn/schema/

search1: databasesListDocuments (
databaseId: $databaseId
collectionId: $collectionId
queries: ["search(\"group_a\", \"$search1\")"]
) {
total
documents{
_id
_createdAt
_updatedAt
_permissions
data
}
}
search2: databasesListDocuments(
databaseId: $databaseId
collectionId: $collectionId
queries: ["search(\"group_b\", \"$search1\")"]
) {
total
documents{
_id
_createdAt
_updatedAt
_permissions
data
}
}
}```

This is just your query. What's your actual code in your app?

Do you mean what am I trying to do?

no...i expect expect this to be in some javascript code if you're making a javacsript based app.

Currently I am playing around with this query in graphql explorer. I have a React based website where I am attempting to display search results with this graphql query

ok so you would use our SDK and write something like:
import { Client, Graphql, Query } from "appwrite";
const client = new Client()
.setEndpoint('https://[HOSTNAME_OR_IP]/v1') // Your Appwrite Endpoint
.setProject('[PROJECT_ID]'); // Your project ID
const graphql = new Graphql(client);
const query = graphql.query({
query: `query search($databaseId: String!, $collectionId: String!, $search1: String, $search2: String) {
search1: databasesListDocuments (
databaseId: $databaseId
collectionId: $collectionId
queries: [$search1]
) {
total
documents{
_id
_createdAt
_updatedAt
_permissions
data
}
}
search2: databasesListDocuments(
databaseId: $databaseId
collectionId: $collectionId
queries: [$search2]
) {
total
documents{
_id
_createdAt
_updatedAt
_permissions
data
}
}
}`,
variables: {
databaseId: '...',
collectionId: '...',
search1: Query.search('group_a', value),
search2: Query.search('group_b', value)
}
});

in the explorer it would have been something like

Is it too soon to say I love you?

Let me check this out..

Thank you

This worked thank you

[SOLVED] Create OR query to receive documents where one or multiple attributes fits a search term
Recommended threads
- Relationship null, even when relationshi...
Hi Everyone, im experiencing issues with set relation data. When im setting the document id from the related database most of them seem fine, except one table. ...
- Website shows just the HTML in safari
Hi y'all, I've been working on a project for a while but, for some reason it just shows the html in safari, It work perfectly fine in firefox and chrome, but sa...
- REQUEST FAILED IN MIGRATION
I was trying to moved my archived project to a self-host database . Though the Project is "read only" but there's a message that I can view and migrate data to...
