Reputation: 41
Im working with a MS SQL DB which has 20 tables. Each of the tables is relevant to the other tables in some way. The end goal is to use the Azure OAI chat to interact with the data inside the different tables. At first I thought that I could just use different indexes as data sources inside the playground, but as of today, only one data source can be selected. Since one datasource is one index, I could only chat with one table. Now im wondering what the best solution is. Is there a way to create one index for the 20 tables? If not, is there a way to merge the different indexes?
Upvotes: 0
Views: 638
Reputation: 1464
There are a few options you can consider with Azure Cognitive Search. The first is to join the tables through a view which would give you a single index to search over. The main downside of this is if you are using the Indexer, you can not easily do change tracking over a view which makes incremental indexing harder.
It may not be viable to create a join of these tables, so you can also add multiple Indexers that index data into a single table. You can not do this from the portal, but you can do it from the API/SDK. This would most likely create a large number of columns (fields) in your Index, and most likely a lot of these fields will be empty as a result. Luckily because search uses an Inverted Index, these null fields are really not an issue.
Please also note that the Indexer is one of the ways you can put data into Azure Cognitive Search. The other option is to use the PUSH api to send data in JSON format. This would allow you to set up the data however you like.
Liam
Upvotes: -1