套用篩選與排序

已完成

此動作對搜尋解決方案很常見,通常是使用者想要依欄位值,用篩選及排序來精簡查詢結果。 Azure AI 搜尋服務透過搜尋查詢 API 支援這兩項功能。

篩選結果

您可用兩種方式對查詢套用篩選:

  • 藉由在 簡單搜尋 表達式中包含篩選準則。
  • 完整語法搜尋運算式,提供 OData 篩選運算式作為 $filter 參數。

您可以將篩選套用至索引中的任何 可篩選 欄位。

例如,假設您想尋找包含文字倫敦作者欄位值為Reviewer的檔案。

您可以提交下列 簡單的搜尋 表示式來達成此結果:

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

或者,您可以在 $filter 參數中使用 OData 篩選,並搭配 完整的 Lucene 搜尋表示式,如下所示:

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

提示

OData $filter 表示式區分大小寫!

使用 Facet 進行篩選

Facet 是向使用者呈現篩選準則 (依據結果集中欄位值) 的實用方式。 對於像是欄位有少量的離散值,可在使用者介面中顯示為連結或選項時,這種方式的效果最佳。

若要使用 Facet,您必須指定在初始查詢中要擷取可能值的可 Facet 欄位。 例如,您可以使用下列參數傳回 作者 欄位的所有可能值:

search=*
facet=author

此查詢的結果包含可在使用者介面中顯示的離散 Facet 值集合,以供使用者選取。 然後可以在後續的查詢中,使用所選的 Facet 值來篩選結果:

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

排序結果

根據預設,會依據查詢處理序所指派的相關性分數來排序結果,會先列出評分最高的相符項目。 不過,您可以藉由包含指定一或多個可排序欄位的 OData orderby 參數和排序順序 (ascdesc) 來覆寫此排序順序。

例如,若要排序結果,最近修改過的文件列在最前面,可以使用下列參數值:

search=*
$orderby=last_modified desc

注意

如需使用篩選的詳細資訊,請參閱 Azure AI 搜尋中的篩選。 如需使用結果的相關資訊 (包括排序及點擊醒目提示),請參閱如何在 Azure AI 搜尋服務中使用搜尋結果