转义特殊字符并通过Azure搜索选择正确的分析器的问题

时间:2018-06-20 14:11:33

标签: azure-search

我正在使用Azure索引进行索引搜索。

我创建了自定义的 SWMLuceneAlongWithCustomHyphenAnalyser 分析器,用于转义-(特殊字符),如下图所示

 "analyzers":[
    {
       "name":"SWMLuceneAlongWithCustomHyphenAnalyser",
       "@odata.type":"#Microsoft.Azure.Search.CustomAnalyzer",
       "tokenizer": "keyword_v2",
       "tokenFilters": [
                        "lowercase"
                       ]
    }
 ]

例如进行转义-我的索引搜索查询是

&search=lowerSystemID:/.*ryan\-yeti\-win10.*/lowerMachineTag:/.*ryan\-yeti\-win10.*/&$select=lowerProductKey,lowerSystemID,lowerMachineTag&$filter=(lowerSystemID ne null)&$count=true&$top=999&queryType=full&$skip=0

此查询以预期的结果返回。

但是我们遇到了查询值为!@#$%^&*()*^w

的问题

如果存在则返回数据,否则显示零结果。现在,它返回所有记录。 下面是转义所有特殊字符后的查询。不知道我在这里做错了什么,或者分析仪不是正确的:

&search=lowerSystemID:/.*\!\@\#\$\%\^\&\*\(\)\*\^w.*/lowerMachineTag:/.*\!\@\#\$\%\^\&\*\(\)\*\^w.*/&$select=lowerProductKey,lowerSystemID,lowerMachineTag&$filter=(lowerSystemID ne null)&$count=true&$top=999&queryType=full&$skip=0

任何建议都会有所帮助!

0 个答案:

没有答案