Rank 2: Process
Excellent. so that works, and I would want to use variables.
Votes
0
Replies
24
Participants
Unknown
Messages
25
Rank 2: Process
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
Rank 2: Process
It's confusing when you switch between different syntax.
Rank 2: Process
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
Rank 2: Process
How would I fix this in a single request?
with graphql you can make muliple api calls in 1
Rank 2: Process
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 } } }Rank 2: Process
Thanks. I can't figure out how to escape the usage of the search variable in the queries
Rank 2: Process
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/
Rank 2: Process
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?
Rank 2: Process
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.
Rank 2: Process
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
Rank 2: Process
Is it too soon to say I love you?
Rank 2: Process
Let me check this out..
Rank 2: Process
Thank you
Rank 2: Process
This worked thank you
[SOLVED] Create OR query to receive documents where one or multiple attributes fits a search term