私はBLOBストレージがHTMLコンテンツの索引付けをサポートする唯一のデータソース(これまで)であることを知っています。紺碧の検索インデックスhtmlのコンテンツ
私の質問は、ドキュメントをREST経由でインデックスに追加する前に、カスタムアナライザとcharfilter 'html_strip'(azure docsに記載されています)を使用してコンテンツを取り除くことができますか?ここで
は私のインデックスペイロードを作成されています。ここでは
{
"name": "htmlindex",
"fields": [
{"name": "id", "type": "Edm.String", "key": true, "searchable": false},
{"name": "title", "type": "Edm.String", "filterable": true, "sortable": true, "facetable": true},
{"name": "html", "type": "Collection(Edm.String)", "analyzer": "htmlAnalyzer"}
],
"analyzers": [
{
"name": "htmlAnalyzer",
"@odata.type": "#Microsoft.Azure.Search.CustomAnalyzer",
"charFilters": [ "html_strip" ],
"tokenizer": "standard_v2"
}
]
}
は私の追加文書がインデックスペイロードにある:私はインデックスを検索する際
{
"value": [
{
"id": "1",
"title": "title1",
"html": [
"<p>test1</p>",
"<p>test2</p>"
]
}
]
}
は今、私は、HTMLコンテンツが取り除かれていない参照します:
{
"@odata.context": "https://deviqfy.search.windows.net/indexes('htmlindex')/$metadata#docs",
"value": [
{
"@search.score": 1,
"id": "1",
"title": "title1",
"html": [
"<p>test1</p>",
"<p>test2</p>"
]
}
]
}
私は間違っていますか?私はそれを追加する前にどのようにコンテンツからhtmlを取り除くことができますか?前処理なし。
は、マークアップからのコンテンツを分離することができます。これはどのように達成されますか?それが不可能な場合。 –
BLOBからデータを索引付けしようとすると、特定のコンテンツ抽出ツールを実行して、HTMLを取り除くか、またはオフィスのファイル、PDFなどからテキストを読み取ることができます。これは、実際のブロブが変更されていないため、非破壊的な意味での「前処理」ステップです。 REST APIを使用してデータをインデックスにプッシュする場合、「元の」ドキュメントという概念がないため、実際のドキュメントは変更されません。 Blobストレージを使用するのが適切な選択肢ではない理由を具体的に教えてください。おそらく私があなたのシナリオをよりよく理解すれば、可能ならば代替案を見つけることができますか? –