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?
3 Answers
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.
Reference: How to: Create apps for SharePoint that can be used by anonymous users
-
How would it be to add the app domain as an external source for search? Is that blocked by Microsoft?Robert Lindgren– Robert Lindgren2014-03-23 07:47:20 +00:00Commented Mar 23, 2014 at 7:47
-
@RobertLindgren I read the statement as you should host your data externally (not in the SharePoint Farm), and use the App to update data on the external source. That external source can be crawled by SSA.2014-03-23 08:10:06 +00:00Commented Mar 23, 2014 at 8:10
-
3Thanks. That's a huge drawback. From customer's perspective, if I buy an issue management app and I can't search in issues or query it like assignedto:me, then what value does it bring? Very disappointing.Ashish Patel– Ashish Patel2014-03-23 14:21:06 +00:00Commented Mar 23, 2014 at 14:21
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?
-
Are you sure that you get search results from app web?Slaven Semper– Slaven Semper2016-01-14 09:55:19 +00:00Commented Jan 14, 2016 at 9:55
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 eventID du54.
Update
"Do not use proxy server for addresses beginning with:" to add
http://[AppPrefix]*(and/orhttps://[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
[CentralAdmin]/_admin/ConfigureAppSettings.aspx