¿Hay alguna forma en la búsqueda azul de llevar los datos orderby por valor a la parte superior y permanecer debajo? Traer el hotel en el país de ubicación del usuario a la parte superior y luego otros resultados
Por ejemplo: vea los datos de muestra a continuación
| Nombre del hotel | Ciudad | País | Tipo de habitación | clasificación |
|---|---|---|---|---|
| XYZ | ciudad1 | India | a B C | 4 |
| UVW | ciudad2 | Australia | definitivamente | 5 |
| KWHK | ciudad3 | India | 6 | |
| KHUK | ciudad4 | Porcelana | 2 |
Quiero obtener todos los datos, pero el país India debe estar en el resultado superior y el resto debe estar debajo. (que incluye paginación).
Estoy haciendo una búsqueda POST de consulta de lucene para lo mismo, y debajo está mi cuerpo de consulta json para lo mismo.
Query: { search: *, queryType: 'full', count: true, skip: 0, top: 10, scoringStatistics: 'global', searchMode: 'any', }
Creo que si incluye el país en su búsqueda debería funcionar, por ejemplo:
search=term OR (term and Country eq 'India')Un gerente de producto de MSFT respondió una pregunta similar con más información:
Debe considerar el uso de la función geo.distance en la búsqueda, básicamente cuando realiza una consulta, debe pasar la ubicación del usuario actual como un edm.GeographyPoint en la función, luego, al ordenar los resultados, puede ordenarlos por la ubicación más cercana a la más alejada del usuario. Documentación sobre esto, allí también verá algunos ejemplos https://docs.microsoft.com/en-us/azure/search/search-query-odata-geo-spatial-functions
POST /indexes/hotels/docs/search?api-version=2020-06-30 { "search": "*", "orderby": "geo.distance(Location, geography'POINT(-122.12315 47.88121)')" }