Fixing SharePoint 2013 Search can not only get your search feature working, it can also help with SharePoint 2013 performance issues. Most SharePoint search problems are related to one of the following:
1. Crawler does not have permission to crawl the database.
2. Search does not have the proper URL’s to crawl
Crawler Does Not Have Permission to Access the Database
When you configured the database, did you use an account with administrative rights?
Go to Central Administration –> General Application Settings –> Farm Search Administration –> Search Service Application. Look at the default content access account. make sure it’s either and administrative account or an account that has access to the SQL databases.
Configure Crawl URL in SharePoint 2013 Search
Open Central Administration > General Application Settings > Farm Search Administration –> Search Service Application.
Click on Search Service Application and then on the Content Sources menu link.
Locate your site, click on the drop down menu and then select edit. In the start address, make sure that you have entries for your FQDN, your default Web as well as the SPS3 Protocol Handler. For example: if your SharePoint server’s NetBIOS name is SP01, then you should have an entry for http://SP01 and SPS3://SP01 in addition to your Web site FQDN. This is necessary for the search feature to properly work.
Once you have finished, click OK to save the changes.
Next, re-initialize the search index to clear out the database and re-initialize the crawl. To do this, go to Central administration –> General Application Settings –> Farm Search Administration –> Search Service Application. Select Index Reset from the crawling menu and then click on the reset now button.
Once you have reset the index, click on content sources and select start all crawls.