Thanks @Teodor, sure!, I’ll try and expand on what I’ve written -
So we have an existing application (React/Symfony) that queries an AWS ElasticSearch instance via an API. This is a $GET, we use the ES DSL Query language - so when we make the call the call is always made in JSON.
This can end up being quite complex as we have 29 + filters.
However, for the sake of testing we are just using the basic match all JSON:
{
"query": {
"match_all": {}
}
}
or a simple query:
{
"query": {
"function_score": {
"boost_mode": "sum",
"query": {
"bool": {
"must": "{{$_GET.json}}"
}
},
"functions": [
{
"field_value_factor": {
"field": "importance",
"factor": 1,
"modifier": "none",
"missing": 1
}
}
]
}
},
"track_total_hits": true,
"size": "25",
"from": "0",
"_source": [
"skills.name",
"emails.address",
"emails.type",
"phone_numbers.is_primary",
"phone_numbers.E164",
"phone_numbers.type",
"education.end_date",
"education.majors",
"education.school.name",
"education.degrees",
"education.start_date",
"profiles.url",
"profiles.network",
"id",
"experience.end_date",
"experience.most_recent",
"experience.is_primary",
"experience.company.name",
"experience.title.name",
"experience.start_date",
"experience.summaries",
"summaries",
"primary.name",
"primary.location.name",
"primary.job.end_date",
"primary.job.company.name",
"primary.job.title.name",
"primary.job.start_date",
"primary.job.start_date"
]
}
Note the $GET parameter, is a recent addition - even if I put the actual search item in there such as REACT or Javascript (if searching for those keywords) the performance remains the same when comparing.
Our ES instance is XXLarge and performs well in our existing app using this exact same API.
Is that sufficient Teodor? Happy to try and provide as much information as I possible can for this.