我在天蓝色搜索中存储了以下文件的文档,然后所有文件都可以搜索。
根据正式文档search document,我尝试通过带有内容关键字的URL查询酒店,但失败。
POST /indexes/hotels/docs/search?api-version=2017-11-11
{
"search": "url:example.com AND hotel",
"searchMode": "all"
}
更新:
我尝试使用标准令牌生成器,并将域名 blog.xuite.net 成功解析器用作令牌。
"tokens": [
{
"token": "https",
"startOffset": 0,
"endOffset": 5,
"position": 0
},
{
"token": "blog.xuite.net",
"startOffset": 8,
"endOffset": 22,
"position": 1
},
{
"token": "yundestiny",
"startOffset": 23,
"endOffset": 33,
"position": 2
},
{
"token": "20050916",
"startOffset": 34,
"endOffset": 42,
"position": 3
},
]
我为什么可以通过 url:blog.xuite.net 搜索?
答案 0 :(得分:0)
您可能要尝试的一件事是将custom analyzer应用于包含此内容的字段。实际上,我认为uax_url_email标记生成器将适合您的情况,但是另一个选择是创建一个分析器,使用字符过滤器对//和/等字符进行标记。
答案 1 :(得分:0)
最后,我发现通过tokenizer = standard_v2和tokenFilters使用 CustomAnalyzer = LimitTokenFilter。以下是我的索引设置。
"analyzers": [
{
"@odata.type": "#Microsoft.Azure.Search.CustomAnalyzer",
"name": "domain_analyzer",
"tokenizer": "standard_v2",
"tokenFilters": [
"my_limit"
],
"charFilters": []
}
],
"tokenizers": [],
"tokenFilters": [
{
"@odata.type": "#Microsoft.Azure.Search.LimitTokenFilter",
"name": "my_limit",
"maxTokenCount": 2,
"consumeAllTokens": false
}
],
使用此CustomAnalyzer,例如 url 字段
https://example.com/test.html
将仅作为 example.com 编制索引。
所以我可以通过search = url:(example.com)和{关键字}
进行搜索