【发布时间】:2017-01-10 16:39:33
【问题描述】:
使用 Azure Search REST API v2016-09-01,以下查询找到预期的文档:
?queryType=full&search=id:3119443 AND name:du*
{
"value": [
{
"@search.score": 4.425995,
"id": "3119443",
"name": "dupond"
}
]
}
而以下更广泛的查询(搜索 d* 而不是 du*)找不到相同的文档:
?queryType=full&search=id:3119443 AND name:d*
{
"value": []
}
name 字段使用带有Whitespace 标记器和WordDelimiterTokenFilter、AsciiFoldingTokenFilter 和Lowercase 标记过滤器的自定义分析器。
- 大多数被索引的文档在搜索它们的第一个
name字母时都能正确找到。 - 问题在那些特定文档上 100% 可重现,对此我没有发现任何特别之处。
- 搜索服务是一个“标准”层(1 个副本、1 个分区、1 个搜索单元),索引包含 3,000,000 多个文档。
谢谢。
【问题讨论】:
-
嗨,我是来自 Azure 搜索的 Nate。这似乎是一个错误。我们正在调查这个问题。如果您有任何问题,请随时通过 nateko@microsoft.com 与我联系。
-
这是在最近的更改中引入的回归。此更改对通配符搜索查询可以扩展到多少个术语并影响范围广泛的查询(例如 a* 或 /.*/)引入了上限。我们将此视为错误,并正在积极进行修复。
标签: lucene azure-cognitive-search