如何在 Azure AI 搜尋服務中為純文字 Blob 和檔案編製索引
使用索引子擷取可搜尋的 Blob 文字或檔案內容,以執行全文搜尋時,您可以指派剖析模式,以獲得更理想的檢索結果。 依預設,索引子會將 Blob 的 content
屬性剖析為單一文字區塊。 然而,如果所有 Blob 和檔案都包含具有相同編碼的純文字,您可以使用 text
剖析模式,大幅提升檢索效能。
text
剖析的建議包括下列特性之一:
- 檔案類型為
.txt
- 任何類型的檔案,但內容本身為文字 (例如程式的原始程式碼、HTML、XML 等等)。 對於使用標記語言的檔案,語法字元會以靜態文字傳遞。
別忘了,所有索引子都會序列化為 JSON。 依預設,整個文字檔的內容會在一個大型欄位內編製索引為 "content": "<file-contents>"
。 新行和傳回的指示會內嵌於內容欄位,以 \r\n\
的形式呈現。
如果您想獲得更精細或細微的結果,而且檔案類型相容的話,可考慮採用以下解決方案:
delimitedText
剖析模式 (如果來源為 CSV)jsonArray
或jsonLines
(如果來源為 JSON)
將內容分成多個部分的第三種替代選項,需搭配使用 AI 擴充形式的進階功能。 這會加入分析作業,識別檔案區塊並指派給不同的搜尋欄位。 您可以透過內建技能找到完整或部分的解決方案,例如實體辨識或關鍵字擷取,但較接近的解決方案可能是自訂學習模型,此模型能理解您的內容,並封裝在自訂技能中。
設定純文字索引編製
若要為純文字 Blob 編製索引,請在parsingMode
建立索引子text
要求上將 組態屬性設為 以建立或更新索引子定義:
PUT https://[service name].search.windows.net/indexers/[indexer name]?api-version=2024-07-01
Content-Type: application/json
api-key: [admin key]
{
... other parts of indexer definition
"parameters" : { "configuration" : { "parsingMode" : "text" } }
}
根據預設,會假定使用 UTF-8
編碼。 若要指定其他編碼,請使用 encoding
設定屬性。 支援的編碼清單位於 .NET 5 和更新版本支援資料行之下。
{
... other parts of indexer definition
"parameters" : { "configuration" : { "parsingMode" : "text", "encoding" : "iso-8859-1" } }
}
要求範例
剖析模式是在索引子定義中指定。
POST https://[service name].search.windows.net/indexers?api-version=2024-07-01
Content-Type: application/json
api-key: [admin key]
{
"name" : "my-plaintext-indexer",
"dataSourceName" : "my-blob-datasource",
"targetIndexName" : "my-target-index",
"parameters" : { "configuration" : { "parsingMode" : "delimitedText", "delimitedTextHeaders" : "id,datePublished,tags" } }
}