I'm new to ES. We want to search a collection of documents, but then
order and filter the result-set based on user-context data from
outside the actual documents themselves.
For example, we want to search for "Rabbit" among all "Animal"
documents. However, we want to order the results based not just on
document relevancy to the search term "Rabbit" but also on other
factors not even contained int he "Animal" documents, such as where
the searcher is located, what the most popular searched-for Animals
were that day, what browser the search user is using on the website,
or what species of Animals that this user has searched for in the
We don't want to post-process the search results... can we handle all
of this within ES? Can we have multiple indexes and/or multiple
types, each of which collects different types of data (one index on
Animals, another on User Locations, another on User Browsers, etc),
and then query based on something like a join or intersection?
I realize some things could be passed in with the query as additional
query parameters... but this doesn't cover when we need to compute
weights based on complex combinations of aggregate data points.