Support correlated search on complex collections
Now that Azure Search supports complex types, it would be useful to be able to combine full-text search and strict Boolean filters when querying over complex collections. Currently this is not possible -- search.ismatch()/ismatchscoring() are not allowed in lambda expressions, and using sub-fields of complex collections in full Lucene queries has uncorrelated semantics.
For example, if you want to search for hotels that have deluxe rooms with city views, none of these gives you exactly what you want:
search=Rooms/Description:(city views) AND Rooms/Type:(Deluxe Room)
search=Rooms/Description:(city views)&$filter=Rooms/any(room: room/Type eq 'Deluxe Room')
$filter=search.ismatchscoring('city views') and Rooms/any(room: room/Type eq 'Deluxe Room')
Instead, what you'd ideally want is something like this (exact syntax TBD):
$filter=Rooms/any(room: search.ismatch('city views', room/Description) and room/Type eq 'Deluxe Room')

2 comments
-
Anonymous commented
That would be extremely useful and would allow the use of dynamic fields without altering the index schema but updating the index data instead.
-
Neha commented
I am having the similar issue. Have you received any fix or workaround?