Filteren en sorteren toepassen

Voltooid

Het is gebruikelijk in een zoekoplossing voor gebruikers om queryresultaten te verfijnen door te filteren en sorteren op basis van veldwaarden. Azure AI Search ondersteunt beide mogelijkheden via de zoekquery-API.

Resultaten filteren

U kunt filters op twee manieren toepassen op query's:

  • Door filtercriteria op te halen in een eenvoudige zoekexpressie .
  • Door een OData-filterexpressie op te geven als een $filter parameter met een volledige syntaxiszoekexpressie.

U kunt een filter toepassen op elk filterbaar veld in de index.

Stel dat u documenten wilt zoeken die de tekst Londen bevatten met de waarde van het auteurveld Revisor.

U kunt dit resultaat bereiken door de volgende eenvoudige zoekexpressie in te dienen:

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

U kunt ook een OData-filter gebruiken in een $filter parameter met een volledige Lucene-zoekexpressie als volgt:

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

Tip

OData $filter expressies zijn hoofdlettergevoelig.

Filteren met facetten

Facetten zijn een handige manier om gebruikers te presenteren met filtercriteria op basis van veldwaarden in een resultatenset. Ze werken het beste wanneer een veld een klein aantal discrete waarden heeft die kunnen worden weergegeven als koppelingen of opties in de gebruikersinterface.

Als u facetten wilt gebruiken, moet u facetabelvelden opgeven waarvoor u de mogelijke waarden in een eerste query wilt ophalen. U kunt bijvoorbeeld de volgende parameters gebruiken om alle mogelijke waarden voor het auteursveld te retourneren:

search=*
facet=author

De resultaten van deze query bevatten een verzameling discrete facetwaarden die u kunt weergeven in de gebruikersinterface die de gebruiker kan selecteren. Vervolgens kunt u in een volgende query de geselecteerde facetwaarde gebruiken om de resultaten te filteren:

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

Resultaten sorteren

Resultaten worden standaard gesorteerd op basis van de relevantiescore die door het queryproces is toegewezen, met de hoogste scoreovereenkomsten die als eerste worden vermeld. U kunt deze sorteervolgorde echter overschrijven door een OData-orderbyparameter op te geven waarmee een of meer sorteerbare velden en een sorteervolgorde (asc of desc) worden opgegeven.

Als u bijvoorbeeld de resultaten wilt sorteren zodat de laatst gewijzigde documenten eerst worden weergegeven, kunt u de volgende parameterwaarden gebruiken:

search=*
$orderby=last_modified desc

Notitie

Zie Filters in Azure AI Search voor meer informatie over het gebruik van filters. Zie Hoe u kunt werken met zoekresultaten in Azure AI Search voor informatie over het werken met resultaten, waaronder sorteren en markeren van treffers.