如何在天蓝色搜索中搜索特殊字符和带有特殊字符的单词?
How to search special characters and words with special characters in azure search?
我正在使用带有标准分析器的 azure 搜索。我在搜索时遇到了这个问题。
我的索引中有类似“abc@sakiladb.com”的文本。
如果我尝试只搜索 @,没有结果。
如果我尝试使用这个词的一半后跟 * 进行搜索,没有结果。
如果我尝试使用转义和编码进行搜索,上述两种情况都不起作用。
有什么方法可以搜索这些字符串吗?
看起来这可能与标准分析器有关。
如果将分析 API https://docs.microsoft.com/en-us/rest/api/searchservice/test-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”创建一个标记,现在应该 return 你想要的结果你的搜索。
所有这些都由文档支持,因为这里提到标准分析器将忽略大多数特殊字符 https://docs.microsoft.com/en-us/azure/search/query-simple-syntax#special-characters
"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
}
]
}
我正在使用带有标准分析器的 azure 搜索。我在搜索时遇到了这个问题。
我的索引中有类似“abc@sakiladb.com”的文本。
如果我尝试只搜索 @,没有结果。
如果我尝试使用这个词的一半后跟 * 进行搜索,没有结果。
如果我尝试使用转义和编码进行搜索,上述两种情况都不起作用。
有什么方法可以搜索这些字符串吗?
看起来这可能与标准分析器有关。 如果将分析 API https://docs.microsoft.com/en-us/rest/api/searchservice/test-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”创建一个标记,现在应该 return 你想要的结果你的搜索。 所有这些都由文档支持,因为这里提到标准分析器将忽略大多数特殊字符 https://docs.microsoft.com/en-us/azure/search/query-simple-syntax#special-characters
"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
}
]
}