The order of the index is based on how it is shown in ShowConfig and what content is changed in your content tree and the index crawling path.
In your case as the paths for crawling is completely different for both the indexes, but is the order of the index.
Go to https://your-cmUrl/sitecore/admin/showconfig.aspx
And verify the order of the index is index1 ...
You need to check this part of the documentation: https://doc.sitecore.net/sitecore_experience_accelerator/setting_up_and_configuring/configuring/extend_search#_Extend_search_to_3
This explains how to use a link type field in the facets. Add a computed field and use that fieldname in the facet:
Add the following definition to your search configuration file:
It sounds like you don't need the Language fallback enabled in the first place.
Items with language fallback enabled and don't have the pt-BR version, Sitecore will use the fallback language (in this case I believe en) for indexing.
If you don't want this to happen, you could turn it off.
The GetModel() method is a virtual method of SXA AbstractRepository. Most of SXA repositories inherits from it, that is why we are overriding that method in a lot of places (as you probably noticed). What you need to do is to implement that method (as it comes from your interface) rather than override.
The same with FillBaseProperties() method. That is a ...
That is possible:
Sitecore.ContentSearch.AbstractSearchIndex.PerformUpdate will raise indexing:start and indexing:end with index name that is being worked on.
The handler listening to start event could create a common cache using BaseCacheManager.GetNamedInstance with registerNewInstance parameter true (share the same cache instance by name solution wide).