如何在azure搜索中搜索特殊字符和具有特殊字符的单词?
我正在使用azure搜索和标准分析器。我在进行搜索时遇到了这个问题 我的索引中有文本,如“abc@sakiladb.com“如何在azure搜索中搜索特殊字符和具有特殊字符的单词?,azure,search,lucene,full-text-search,azure-cognitive-search,Azure,Search,Lucene,Full Text Search,Azure Cognitive Search,我正在使用azure搜索和标准分析器。我在进行搜索时遇到了这个问题 我的索引中有文本,如“abc@sakiladb.com“ 如果我尝试只搜索@,则没有结果 如果我尝试用这个单词的一半后跟*进行搜索,则没有结果 如果我尝试使用转义和编码进行搜索,上述两种情况都不起作用 有什么方法可以搜索这些字符串吗?看起来这可能是标准分析器的问题。 如果将AnalyzeAPI与标准analyzer一起使用,您将看到它仅标记“abc”和“sakiladb.com”,如下所示 "tokens
有什么方法可以搜索这些字符串吗?看起来这可能是标准分析器的问题。 如果将AnalyzeAPI与标准analyzer一起使用,您将看到它仅标记“abc”和“sakiladb.com”,如下所示
"tokens": [
{
"token": "abc",
"startOffset": 0,
"endOffset": 3,
"position": 0
},
{
"token": "sakiladb.com",
"startOffset": 4,
"endOffset": 16,
"position": 1
}
]
}
使用“en.microsoft”分析器时,标记化的发生方式有所不同,但它会为整个abc@sakiladb.com“现在,它将返回搜索所需的结果。
所有这些都由文档支持,因为这里提到的标准分析器将忽略大多数特殊字符
"tokens": [
{
"token": "abc@sakiladb.com",
"startOffset": 0,
"endOffset": 16,
"position": 0
},
{
"token": "abc",
"startOffset": 0,
"endOffset": 3,
"position": 0
},
{
"token": "sakiladb",
"startOffset": 4,
"endOffset": 12,
"position": 1
},
{
"token": "com",
"startOffset": 13,
"endOffset": 16,
"position": 2
}
]
}