如何构建Azure POST REST调用以匹配逗号分隔列表字符串上的值?
例如:
我想搜索" GWLAS"或" SAMGV"在Azure字段中" ProductCategory"。
" ProductCategory"文档中的字段将具有逗号分隔的值字符串,例如" GWLAS,EXDEB,SAMGV,AMLKYC"。
有什么想法吗?
答案 0 :(得分:0)
如果您对ProductCategory
字段使用默认分析器(假设它是可搜索的),则默认情况下它应该在逗号上使用分词。这意味着您需要做的就是搜索您感兴趣的术语并将其限制在正确的栏目中:
POST /indexes/yourindex/docs/search?api-version=2016-09-01
{
"search": "GWLAS SAMGV",
"searchFields": [ "ProductCategory" ]
}
还有其他方法可以做到这一点,但这是最简单的方法。如果您已将搜索查询的部分范围扩展到其他字段,则可以使用以下方法将所需的术语范围限定为ProductCategory:
POST /indexes/yourindex/docs/search?api-version=2016-09-01
{
"search": "(Name:\"Anderson John\"~3 OR Text:\"Anderson John\"~3) AND ProductCategory:GWLAS SAMGV",
"queryType": "full"
}
有关您可以在搜索请求中设置的其他选项的详细信息,请参阅Azure Search REST API documentation。此外,this article将帮助您了解Azure搜索如何执行查询。您可以找到完整的Lucene查询语法here的参考。