Rebuild - Deletes the current index and indexes the whole catalog
Build - Only indexes changes (add, remove, moved...). It uses the ApplicationLog table to know which entries has been changed.
There should be no need to restart the IIS after each rebuild index. You should start logging and see what the error is. What the rebuild does is to delete the index and start to build a new one (see configs/Mediachase.search.config in ComMan where this index is stored).
You can automate the task by using a scheduled task in the CMS admin, we ship one you can use I think. But that will do a build (not a rebuild) and will only do it in a scheduled way, i.e. in given intervals.
We donot need a IIS reset or recycle application pool. You may be caching product listing or Search listing results somewhere. You can do a test in Commerce Manager to confirm this. You will be able to find new product in Commerce Manager Search after a rebuild.
You can write a schedule Job also in CMS, Below code will build index for you.
SearchManager searchManager = new SearchManager(applicationName);
Calling BuildIndex with rebuild = false will only add indexes that has changed since the last index was done. The system keeps track of when the last index was performed using the ".build" file. Location of the ".build" file is configured inside Mediachase.Search.config file for each indexer defined.
You can use job named Clear Commerce Cache in episerver's Admin Mode.
When we are rebuilding the index for our Commerce site, we always need to do a IIS Reset in order for the index to work properly. If we do not do a IIS Reset, we get nothing back when doing a search.
The site is yet under development. We are so far using the LucenceSearchProvider and the rebuild of index is done through the Commerce Manager.
- Is is a must to do a IIS Reset after the index is rebuild? Is that a difference between "Rebuild" and "Build"?
- What is the proper approach in order to perform an automatic build after a product has been added in Commerce Manager?
Thanks for all input!