[ ] Regression (a behavior that stopped working in a new release)
[ ] Bug report
[X] Performance issue
[ ] Documentation issue or request
Current behavior
When performing a Get request to the Content Api with a full text search the query often takes longer than 10 seconds. Some queries even take longer than 20 seconds.
Query that takes +/- 10 seconds with Postman:
{“Take”:10,“Skip”:0,“FullText”:“when i do this it is pretty slow”,“Sort”:[{“Path”:“data/CreateDate/iv”,“Order”:“descending”}],“Filter”:null}
GET request: /api/content/{APP}/{SCHEMA}?q=%7b%22Take%22%3a10%2c%22Skip%22%3a0%2c%22FullText%22%3a%22when+i+do+this+it+is+pretty+slow%22%2c%22Sort%22%3a%5b%7b%22Path%22%3a%22data%2fCreateDate%2fiv%22%2c%22Order%22%3a%22descending%22%7d%5d%2c%22Filter%22%3anull%7d
Environment
App Name:
[ ] Self hosted with docker
[ ] Self hosted with IIS
[ ] Self hosted with other version
[X] Cloud version
Version: [VERSION]
Browser:
[ ] Chrome (desktop)
[ ] Chrome (Android)
[ ] Chrome (iOS)
[ ] Firefox
[ ] Safari (desktop)
[ ] Safari (iOS)
[ ] IE
[ ] Edge
Others:
If this is the expected result, does someone have tips or tricks to improve the performance?
The “bad” thing is that Squidex content is multi-language and therefore we cannot really optimize for a single language and the search in MongoDB is not clever enough to search across languages.
Therefore stop words are not removed. Your search is not very specific and therefore the result set is very big. It is only an explanation and I will dig into it, how it can be improved. In general I recommend:
Thanks for the explanation and advice, the use of the CDN might improve performance a bit.
I could use a service like Elastic but I think it is also important for Squidex that this works well. From my point of view this is a potential security (availability) issue. Potentially a (D)DoS attack would be possible here.