如何在 Azure 認知搜尋中為純文字 Blob 和檔案編制索引

適用于Blob 索引子檔案索引子

使用索引子擷取可搜尋的 Blob 文字或檔案內容進行全文檢索搜尋時,您可以指派剖析模式以取得更好的索引結果。 根據預設,索引子會將內容剖析為單一文字區塊。 不過,如果所有 Blob 和檔案都以相同的編碼方式包含純文字,您可以使用剖析模式大幅改善索引編制效能 text

用於剖 text 析的建議包括:

  • 檔案類型.txt
  • 檔案屬於任何類型,但內容本身是文字 (,例如程式原始程式碼、HTML、XML 等等) 。 對於標示語言的檔案,任何語法字元都會以靜態文字的形式出現。

回想一下,所有索引子都會序列化為 JSON。 根據預設,整個文字檔的內容會在一個大型欄位內編制索引為 "content": "<file-contents>" 。 任何新行和傳回指令都內嵌在內容欄位中,並以 表示。 \r\n\

如果您想要更細微的結果,而且檔案類型相容,請考慮下列解決方案:

將內容分成多個部分的第三個選項需要 AI 擴充形式的進階功能。 它會將識別檔案區塊並指派給不同搜尋欄位的分析。 您可以透過 內建技能找到完整或部分的解決方案,但較可能的解決方案是瞭解您的內容、以自訂學習模型表達的內容,並包裝在 自訂技能中。

設定純文字索引

若要為純文字 Blob 編制索引,請在建立索引子要求上,使用 parsingMode 組態屬性 text 建立或更新索引子定義:

PUT https://[service name].search.windows.net/indexers/[indexer name]?api-version=2020-06-30
Content-Type: application/json
api-key: [admin key]

{
  ... other parts of indexer definition
  "parameters" : { "configuration" : { "parsingMode" : "text" } }
}

根據預設,會假定使用 UTF-8 編碼。 若要指定其他編碼,請使用 encoding 設定屬性:

{
  ... other parts of indexer definition
  "parameters" : { "configuration" : { "parsingMode" : "text", "encoding" : "windows-1252" } }
}

要求範例

剖析模式是在索引子定義中指定。

POST https://[service name].search.windows.net/indexers?api-version=2020-06-30
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" } }
}

後續步驟