AZURE SEARCH,不匹配不过滤

问题描述 投票:0回答:1

我正在使用Azure搜索在数据库中执行一些海关搜索。

我有一个具有这种结构的字段:

“ STUFF”:“ 05-05-16-00 |”

但是我在创建过滤器时遇到了麻烦,因为可能无法获得构建此结构的所有数字。这完全取决于最终用户要输入的内容。因此,我需要一个通配符来填充缺少的数字,像这样

“ 05-05-??-??” ->管道很重要,因为此字段内部可以包含多个代码。

现在我需要捕获所有以05-05开头的元素,例如:05-05-11-01

我以为我应该使用search.ismatch()函数,但是不起作用。

这里是一些代码:

search.ismatch('05-05-??-??','STUFF');

结果是:

"STUFF": "02-02-16-00|",
"STUFF": "02-02-14-00|",

这使我发疯,因为我不知道为什么这个结果回来了。

也许很重要,因为我知道我使用'filter'中的这段代码对Azure Search API执行POST请求,>

也许我应该转义-和?这样的特殊字符?像这样

search.ismatch('05\\-05\\-\\?\\?\\-\\?\\?','STUFF')

但是结果是相同的。

有人可以帮我吗?

编辑1

Article之后,我更改了一些内容并进行以下搜索:

search.ismatch('\"05-00*\"','STUFF','simple', 'all')

并且我开始得到一些结果,但是现在这是我的结果:

"STUFF": "06-05-02-00|", //WRONG
"STUFF": "05-02-05-01|", //RIGHT
"STUFF": "05-02-02-07|", //RIGHT

由于某种原因,它重新构造了正确的结构,但没有重新显示文本的开头。

我正在使用Azure搜索在数据库中执行一些海关搜索。我得到了一个具有这种结构的字段:“ STUFF”:“ 05-05-16-00 |”但我在创建过滤器时遇到了麻烦,...

azure lucene lucene.net azure-cognitive-search azure-search-.net-sdk
1个回答
0
投票

我相信您将无法使用StandardAnalyzer解决此问题。尝试为此特定字段切换到WhitespaceAnalyzer,它可能适用于"05-05*"

© www.soinside.com 2019 - 2024. All rights reserved.