Implementing enhancement request #82

Comment From: tzolov

Hi @gm2552 , thank you for the contribution. For your information, I've reviewed, rebased and streamlined your PR code. Note that after updating to latest 11.6.0 version some braking changes popped up.

Here is my refactoring on your PR: https://github.com/tzolov/spring-ai/tree/gh-83-azure-vector-store (it is still your pr ;). Amongst other things i've simplified the naming convention, added afterPropertySet() section to setup the search index (Now we use the SearchIndexClient as a supper factory of SearchClient). Also i've removed some unhealthy dependencies (such as lombok). Regarding the metadata i couldn't figure out a mechanism to map it to the index schema, as later is fixed while our metadata doesn't have fixed structure. This is unfortunate because we can't take advantage of the filtering capabilities. Anyway have a look and let me know if there is something missing.

At the moment I'm waiting for my Azure Open AI account to be activated (apparently can take 10 days) to test the code and then will merge it.

Comment From: gm2552

Thanks for going through this, @tzolov. I've reviewed your changes, and I'm good with them.

Comment From: tzolov

@gm2552 , do you know if the search-index schema could support variable length, key-value structures (e.g. Map)? The COMPLEX type allows for nested data structures but it still requires a schema with fixed set of fields. I wonder if there is a way to configure are repetitive or zero-or-more key & value fields? If above is possible then we can map the metadata to it and leverage the OData filtering mechanism.

Comment From: tzolov

Rebased, swashed and merged at 0aa8eb651e442cdf43efebdb96354c40f8d37d93