【发布时间】:2021-07-01 12:25:19
【问题描述】:
我正在尝试使用边缘 ngram 分析器分析的字段来实现前缀搜索。 但是,每当我进行搜索时,它都会返回类似的匹配项,但不包含搜索项。
以下查询
POST /indexes/resources/docs/search?api-version=2020-06-30
{
"queryType": "full",
"searchMode": "all",
"search": "short_text_prefix:7024032"
}
返回
{
"@odata.context": ".../indexes('resources')/$metadata#docs(*)",
"@search.nextPageParameters": {
"queryType": "full",
"searchMode": "all",
"search": "short_text_prefix:7024032",
"skip": 50
},
"value": [
{
"@search.score": 4.669537,
"short_text_prefix": "7024032 "
},
{
"@search.score": 4.6333756,
"short_text_prefix": "7024030 "
},
{
"@search.score": 4.6333756,
"short_text_prefix": "7024034 "
},
{
"@search.score": 4.6333756,
"short_text_prefix": "7024031 "
},
{
"@search.score": 4.6319494,
"short_text_prefix": "7024033 "
},
... omitted for brevity ...
],
"@odata.nextLink": ".../indexes('resources')/docs/search.post.search?api-version=2020-06-30"
}
其中包括一堆几乎与我的术语相符的文档。以及得分最高的“正确”文档。
自定义分析器像这样标记“7024032”
"@odata.context": "/$metadata#Microsoft.Azure.Search.V2020_06_30.AnalyzeResult",
"tokens": [
{
"token": "7",
"startOffset": 0,
"endOffset": 7,
"position": 0
},
{
"token": "70",
"startOffset": 0,
"endOffset": 7,
"position": 0
},
{
"token": "702",
"startOffset": 0,
"endOffset": 7,
"position": 0
},
{
"token": "7024",
"startOffset": 0,
"endOffset": 7,
"position": 0
},
{
"token": "70240",
"startOffset": 0,
"endOffset": 7,
"position": 0
},
{
"token": "702403",
"startOffset": 0,
"endOffset": 7,
"position": 0
},
{
"token": "7024032",
"startOffset": 0,
"endOffset": 7,
"position": 0
}
]
}
如何排除与词条不完全匹配的文档?
【问题讨论】:
标签: azure azure-cognitive-search n-gram