Azure 搜索Microsoft英语搜索分析器



我正在尝试在汽车零件产品的描述字段中使用Microsoft英语分析器。我在十进制测量值方面遇到了一些意外的行为,所以我通过分析 API 运行它进行确认,看起来词形还原算法正在使用小数点作为信号/分率仪将整数和十进制值分解为两个单独的标记,我认为这不是所需的行为。

例如。

文字:"M12-1.50 车轮螺栓 - 14 毫米。 六角,23.12毫米。 螺纹长度14毫米。

被分解为

{
"@odata.context": "https://site.search.windows.net/$metadata#Microsoft.Azure.Search.V2017_11_11.AnalyzeResult",
"tokens": [
{
"token": "m12-1",
"startOffset": 0,
"endOffset": 5,
"position": 0
},
{
"token": "m12",
"startOffset": 0,
"endOffset": 3,
"position": 0
},
{
"token": "1",
"startOffset": 4,
"endOffset": 5,
"position": 1
},
{
"token": "nn1",
"startOffset": 4,
"endOffset": 5,
"position": 1
},
{
"token": "50",
"startOffset": 6,
"endOffset": 8,
"position": 2
},
{
"token": "nn50",
"startOffset": 6,
"endOffset": 8,
"position": 2
},
{
"token": "wheel",
"startOffset": 9,
"endOffset": 14,
"position": 3
},
{
"token": "bolt",
"startOffset": 15,
"endOffset": 19,
"position": 4
},
{
"token": "14mm",
"startOffset": 22,
"endOffset": 26,
"position": 5
},
{
"token": "hex",
"startOffset": 29,
"endOffset": 32,
"position": 6
},
{
"token": "23",
"startOffset": 34,
"endOffset": 36,
"position": 7
},
{
"token": "nn23",
"startOffset": 34,
"endOffset": 36,
"position": 7
},
{
"token": "12mm",
"startOffset": 37,
"endOffset": 41,
"position": 8
},
{
"token": "thread",
"startOffset": 44,
"endOffset": 50,
"position": 9
},
{
"token": "length",
"startOffset": 51,
"endOffset": 57,
"position": 10
},
{
"token": "14mm",
"startOffset": 58,
"endOffset": 62,
"position": 11
}
]
}

对于寻找 12 毫米车轮螺栓的人来说,这将返回。

任何帮助将不胜感激:)

谢谢!

这是预期行为。Microsoft英语分析器会将十进制视为分隔符,并生成 2 个单独的标记。

如果您想对几个字段执行完全匹配(例如:搜索"M12-1.50 车轮螺栓 - 14 毫米,十六进制,23.12 毫米"(,那么我建议使用带有小写分词器的"关键字"分析器。

您可以在此处阅读有关此内容的更多信息:https://learn.microsoft.com/en-us/rest/api/searchservice/custom-analyzers-in-azure-search

最新更新