I have a table "products" with a few columns I'm trying to search by, but I get this error:
{
"message": "Searching by attribute \"name\" requires a fulltext index.",
"code": 400,
"type": "general_query_invalid",
"version": "1.8.1"
}```
My table does have fulltext indexes configured, so I'm not sure why I'm still getting this error - do they take some time to get setup? And how can I see the status? Are they available in the Free plan?
My code:```ts
const res = await tables.listRows<Products>({
databaseId: process.env.NEXT_PUBLIC_DATABASE_ID!,
tableId: process.env.NEXT_PUBLIC_PRODUCTS_TABLE_ID!,
queries: [
Query.equal("userId", user.$id),
...(search
? [
Query.or([
Query.search("name", search),
Query.search("brand", search),
Query.search("category", search),
]),
]
: []),
Query.select(["*", "units.*"]),
...orderQueries,
Query.orderAsc("$updatedAt"),
Query.orderAsc("$createdAt"),
Query.offset((page - 1) * perPage),
Query.limit(perPage),
],
});```
please share your table structure and list of indexes
Sorry! Meant to share this screenshot.
no worries
It seems a bit off to have the index length set to 0, but not sure if this is the issue. I would recommend trying to set it to a higher value, but I'll share this with the team
Is there a recommended length (depending on the expected content I suppose?) for FTS indexes?
yes, it's really up to your use case.
Nothing Appwrite specific
Hmm, when I select Fulltext the length input disappears?
Only available for "Key".
Got it, it might be it really is not relevant and we shouldn't even show it, but I'm checking with our databases team to be sure. They will have more insights.
Will check what is the issue. Can you share details about projectId/databaseId/tableId please 🙏
Sure, the projectId/databaseId are skincare-buddy, the tableId is products.
Thank you. Did you delete the indexes? Can not see them besides an issue with this index
name_fts_index
Cleared it since it was stuck
Please try to delete the indexes if you see them and recreate. Should be ok now.
It works now! Cool! What was the fix?
The index got stuck for some reason during the creation, might be a cache issue. Should be ok now.. Please feel free to contact as for any issues you are facing 🙏
Interesting! Good to know! Curious - in self-hosted deployments how would I have fixed that? I'm still deciding between self-hosting/AppWrite Cloud for this project, for future projects that are more serious I'll probably go with Cloud but this is a toy app so it would be good to know how I can force recreation of an index.
In self hosted I would check If the index was created in the table. Drop if exist. Delete the index using the console and recreate.
Hey! Is it possible that my project has an error again with the index creation? I'm getting:json
{
"message": "Searching by attribute \"brand.name\" requires a fulltext index.",
"code": 400,
"type": "general_query_invalid",
"version": "1.8.1"
}
Even though I have the indexes:
Although this time I'm wondering if it's because I'm trying to do FTS on a relationship:ts
Query.or([
Query.search("name", search),
Query.search("brand.name", search),
])
Can you check please , are you able to search same attribute using full text , not using relationship? Is you can that means we have a bug to fix
I am. I have that field as searchable in other screens.
Recommended threads
- sh: vite: Permission denied
When installing the vue starter template as site and then adding DaisyUI, i get the error `sh: vite: Permission denied`. I also got this issue (with a fresh tem...
- Appwrite Auth & Function don't reveal cl...
When I execute a function or sign in with my Flutter app, Appwrite does not show my real IP: instead, it seems that Appwrite shows Fastly CDN IP address.
- All function deployments fail (node 18-2...
Error: bash: /usr/local/server/helpers/build-cache.sh: No such file or directory Sidecar error: Build archive was not created at /mnt/code/code.tar.gz Scope: ...