我們有一個用于全文搜索的 Azure 認知搜索索引。
目前,當用戶搜索復數詞(例如Buildings)時,單數形式也被匹配(building)。我們想限制這種行為,以便只回傳復數匹配。我已經通讀了 odata 檔案,但找不到任何關于我們如何通過過濾器中的 search.ismatch 或索引配置中的引數來完成此操作的參考。
uj5u.com熱心網友回復:
復數和單數形式可能都匹配,因為該欄位配置了默認語言分析器,該分析器執行詞干提取。如果您正在尋找完全匹配,您可以在過濾器中使用“eq”運算子。如果您想要一個不區分大小寫(但在其他方面完全)的匹配,您可以嘗試規范化器(請注意,此功能在撰寫本文時處于預覽狀態。)
如果您需要比不區分大小寫的匹配更復雜的匹配行為,您應該查看自定義分析器。它們允許您自定義標記化的行為,以及有選擇地使用(或不使用)詞干提取和其他詞法分析技術。
uj5u.com熱心網友回復:
為了補充布魯斯的答案,
自定義規范器支持許多與自定義分析器相同的標記和字符過濾器。為了確定哪一個最適合您的需求,請考慮以下問題:
- 這種復數/單數匹配行為是否會用于過濾/排序/分面操作?如果是這樣,預配置或自定義規范器將使您能夠細化搜索過濾器回傳的結果。您可以構建自己的或從預先配置的串列中選擇,它支持的不僅僅是不區分大小寫。請參閱支持的字符和令牌過濾器串列。
- 無論是否使用過濾器,在全文搜索中是否需要這種復數/單數匹配行為?如果是這樣,請考慮使用上面建議的自定義分析器 Bruce。
Afaik,請注意規范化器只會影響過濾/排序/分面結果。此外,規范化器是執行此“規范化”以過濾/排序/方面查詢的唯一方法。設定分析器不會影響這些型別的查詢。
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/408502.html
標籤:
