天青搜索索引html内容
问题描述:
我知道Blob存储是唯一的数据源(迄今)支持的HTML内容的索引。天青搜索索引html内容
我的问题是,是否有可能使用自定义的分析器和charfilter“html_strip”(在天青文档提到的)将文档添加到通过REST索引之前剥离内容?
这里是我创建的索引有效载荷:
{
"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的剥离?如果没有前阶段..
答
所以自定义分析仪(以及相关的字符过滤器),你可以到文本标记化之前执行可选步骤。这些分析仪可以帮助我们更好地进行全文搜索。
Azure的搜索没有修改该文件的内容的机制,以使用REST API来的文件推送到索引时被索引。您必须自己做,因为分析器用于从存储在搜索索引中的文档中提取术语。
这里更多细节,如果你有兴趣:https://docs.microsoft.com/en-us/azure/search/search-lucene-query-architecture
添加数据源与HTML文件被索引Blob存储容器能够从标记内容分开。这是如何实现的?如果这是不可能的。 –
当您尝试从blob索引数据时,我们能够运行某些内容提取工具来去除HTML,或从办公文件,PDF等文件中读取文本。这是一个非破坏性的“预处理”步骤,因为您的实际斑点未被修改。当您使用REST API将数据推送到索引时,我们不修改实际文档,因为没有“原始”文档的概念。 说了这么多,你能不能请详细说明为什么使用Blob存储是不是一个适合您的选择?也许如果我更好地理解你的情况,我可以尝试找到可能的替代方案? –