如果搜索包含点和通配符,则无结果
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",重新创建并填充索引,它按预期工作。
看来我必须更小心地设置分析器,并且只对具有语言特定内容的字段使用特定的分析器。
感谢您的帮助。
我使用 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",重新创建并填充索引,它按预期工作。
看来我必须更小心地设置分析器,并且只对具有语言特定内容的字段使用特定的分析器。
感谢您的帮助。