Tillämpa filtrering och sortering

Slutförd

Det är vanligt i en söklösning att användare vill förfina frågeresultat genom att filtrera och sortera baserat på fältvärden. Azure AI Search stöder båda dessa funktioner via sökfråge-API:et.

Filtrera resultat

Du kan använda filter för frågor på två sätt:

  • Genom att inkludera filtervillkor i ett enkelt sökuttryck .
  • Genom att ange ett OData-filteruttryck som en $filter parameter med ett fullständigt syntaxsökningsuttryck.

Du kan använda ett filter på valfritt filterbart fält i indexet.

Anta till exempel att du vill hitta dokument som innehåller texten London som har ett värde för redigeringsfält som granskare.

Du kan uppnå det här resultatet genom att skicka följande enkla sökuttryck :

search=London+author='Reviewer'
queryType=Simple

Du kan också använda ett OData-filter i en $filter-parameter med ett fullständigt Lucene-sökuttryck så här:

search=London
$filter=author eq 'Reviewer'
queryType=Full

Dricks

OData -$filter uttryck är skiftlägeskänsliga!

Filtrering med fasetter

Fasetter är ett användbart sätt att presentera användare med filtreringsvillkor baserat på fältvärden i en resultatuppsättning. De fungerar bäst när ett fält har ett litet antal diskreta värden som kan visas som länkar eller alternativ i användargränssnittet.

Om du vill använda fasetter måste du ange fasettfält som du vill hämta möjliga värden för i en inledande fråga. Du kan till exempel använda följande parametrar för att returnera alla möjliga värden för redigeringsfältet:

search=*
facet=author

Resultatet från den här frågan innehåller en samling diskreta fasettvärden som du kan visa i användargränssnittet som användaren kan välja. I en efterföljande fråga kan du sedan använda det valda fasetteringsvärdet för att filtrera resultatet:

search=*
$filter=author eq 'selected-facet-value-here'

Sortera resultat

Som standard sorteras resultaten baserat på relevanspoängen som tilldelats av frågeprocessen, med de högsta poängmatchningarna listade först. Du kan dock åsidosätta den här sorteringsordningen genom att inkludera en OData orderby-parameter som anger ett eller flera sorterbara fält och en sorteringsordning (asc eller desc).

Om du till exempel vill sortera resultaten så att de senast ändrade dokumenten visas först kan du använda följande parametervärden:

search=*
$orderby=last_modified desc

Kommentar

Mer information om hur du använder filter finns i Filter i Azure AI Search. Information om hur du arbetar med resultat, inklusive sortering och träffmarkering, finns i Så här arbetar du med sökresultat i Azure AI Search.