If I develop a SharePoint Hosted app which creates several lists inside the App Web, is that list data exposed to SharePoint's search engine? In other words, will I be able to perform search on data in my App Web?
No, not by default. You need to do a workaround like this:
Data on the app web is not crawled by the search indexers, so custom data must be deployed remotely or in the host web. This applies to all apps for SharePoint, but we note it here because apps intended for anonymous access often require search functionality.
I've tested this in SharePoint Online (Wave 15) and found that data in lists in the app web IS searchable; Not only from the host web, but from other site collections that consume the search service. I haven't read anything about this issue being fixed, but it looks like it has. Do others find the same?
This behavior is probably due to having a proxy configured in the Farm Search Administration dashboard (
[CentralAdmin]/searchfarmdashboard.aspx) and the proxies not knowing how to route non Internet requests. You need to let SharePoint search know to not use the proxies for the AppWeb URLs, by adding a wildcard entry in the URL exceptions list
Check your ULS logs on the crawl server for errors with
"Do not use proxy server for addresses beginning with:" to add
https://[AppPrefix]*if you use SSL sites).
The * must be present as AppWeb URLs are dynamically generated with each new app instance. (I wonder if this is one of the reasons MSFT even have an AppWeb prefix that needs to be defined?).
Note: You can determine the
[AppPrefix] from Central Admin