如果搜索包含点和通配符,则无结果

No result if search contains dot and wildcard

我使用 Azure 搜索,并且有一些文档包含这样的字段 {"Nr": "123.334.93"}。

如果我搜索 querytype=full&search=123.334.93 然后它找到多个文档,如果我搜索 querytype=full&search="123.334.93" 然后它找到一个文档。这符合预期。

但是,如果我搜索 querytype=full&search=123.334.9*,我希望多个文档以 123.334.9 开头,但返回 none 结果。

我错过了什么吗?

当我使用像这样的正则表达式时也是如此 querytype=full&search=/123\.334\.9.*/

我认为你的查询是正确的,应该有效。

您可能会调查几件事。

1) 有时你需要像这样转义 *:

querytype=full&search=123.334.9\*

通常,只有在 * 之后有更多搜索词时才需要这样做。

2) 您还可以将搜索的字段缩小到您需要的字段(以提高效率),如下所示:

querytype=full&search=Nr:123.334.9\*

希望这对您有所帮助。

基于 Yahnoosh 的评论。

字段的分析器设置为 "de.microsoft"。我将其更改为 "standard.lucene",重新创建并填充索引,它按预期工作。

看来我必须更小心地设置分析器,并且只对具有语言特定内容的字段使用特定的分析器。

感谢您的帮助。