I am building an Assets search engine. The data I need to index for each asset is scattered across several tables in the SQL database. In addition, the application has many events that will trigger the update of indexed asset fields (in draft, rejection, extension, ...).
I am considering creating a new denormalized table in an SQL database that will exist exclusively for the Azure search index. This will be an exact copy of the Azure Search Index fields. The application will be responsible for populating and updating the SQL table using various event handlers. Then I could use the Azure SQL indexer schedule to automatically import the data into the Azure search index.
PROS:
- We are used to working with sql table operations, so the application code remains standard, no need to learn the Azure search API
- Both the transactional and search models are updated in a single SQL transaction (atomic). The Indexer then updates the index in a sequentially consistent order and processes the retry logic.
- Native change detection support with an integrated SQL tracking policy.
MINUSES:
- ?
[EDIT 2017-01-26]
PRO.
// Azure. Azure Index , .
, , Reset , .