You need to make sure that the item is being handled as a specific file type rather than as a list item in a library.
There are specific instructions here, but basically:
Go to Central Admin > Search Service Application
File Types > New File Type.
Enter an image type/types you want to handle with this rule (repeat as necessary)
Go back to the searched ...
You can exclude any path you want in the result web part by adding a exclusion to the query.
Edit the search results web part and select change query from the menu to the right. Switch to advanced mode and add this in the end of the query:
I'm not 100% on the syntax, so just add -Path: + your path (including ...
I POC'd this for you in SharePoint Online tonight, but using a 2013 Search Center. Results could vary based on on-premises vs Online, but I'm hopeful this information will provide the answer you're looking for.
Unfortunately the OOB managed property you'd expect to work (Path) is always going to point to the DispForm.aspx, since it's not indexing the image ...
Just as you stated in your edited question, there seem to be some issue as SharePoints misstaken sites using the same custom template as duplicates and hides them from your querys result.
The author of this blog post had the same problem as you did and mention that the solution is/were to modify the TrimDuplicates property.
SharePoint Online Search Results ...
There is no refiner that is pointing to document library name. As a workaround you need to create a new hidden column in the document library, give it default library name. Add a managed property tagging this column and then after the crawl add it to the refinement panel. refer here.
Hi following is the most complete search web part for modern pages I know of created by Franck Cornu & Mikael Svenson:
Update the Ahmad Zia’s reply:
You need to enter the query path:http://<server>/<site>/<libray>/<folder> without “Forms”.
(“Doc1” is the library name, “f1” and “2018” are folder names)
Found part of the solution needed for your problem in a blog comment by some guy named Marcus (http://www.sharepointblogs.be/blogs/vandest/archive/2014/03/26/sharepoint-2013-search-open-in-client.aspx):
private void EnsureOpenInClient()
UserPreference preference = UserPreference.GetUserPreference();