我正在使用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
任何建议都会有所帮助!