问题
On a SharePoint 2013 on premise installation, we have configured an incremental crawl, that runs every 15 minutes.
Now we need a possibility to start this crawl manually, too. Is there a WebService we can call to start the crawl manually? Maybe even a possibility to start the crawl on a smaller scope, like only a list or website?
回答1:
You may just love Simple HTTP api for Executing PowerShell Scripts
In cases where you want to simply invoke a PowerShell script remotely, a REST api is a good choice since all modern programming languages make it simple to perform a HTTP GET operation.
and Simple HTTP api for executing PowerShell scripts (with source code) which is an out of the box solution of what the above is trying to accomplish. Here are the Windows PowerShell cmdlets to administer and configure search in SharePoint 2013 for more details.
Please also look at SharePoint Windows PowerShell Remoting if you are interested on more nitty-gritty remote SharePoint control.
回答2:
Try to use powershell interface for this purpose.
It is pretty simple when you think about it.
We can use the Get-SPEnterpriseSearchCrawlContentSource command to get a ContentSource object.
After we have a reference to this object, we can start, stop, and pause crawls to our heart’s content.
This class has a few methods that you might be interested in:
StartFullCrawl, StartIncrementalCrawl, StopCrawl, PauseCrawl, and ResumeCrawl.
What each method does should go without explanation.
If it is necessary, you can create a wrapper for powershell call. Your web service will call powershell for this purpose.
来源:https://stackoverflow.com/questions/29095317/start-a-crawl-manually-via-soap-or-rest-webservice