以前,我没有为索引使用特定的分析器。那时我在搜索时遇到特殊字符的问题。以下是“我的姓名”字段中的示例单词。
“ 5eb9050dbfebbc0018a17c3d_error-2020-6-1-98.log”
在上述情况下,索引时,如果有特殊字符,它将被视为一个单独的单词。
如果我搜索“错误”,“日志”,“ 2020” 等,结果将返回。但是,如果我搜索“ 98.log”,“ error-2020” ,则返回零结果。
因此,我探索并发现我们可以使用自定义分析器来克服此问题。我添加了“ keyword_v2”令牌生成器。但是没有任何效果。现在以上两种情况都无法正常工作。以下是我的索引定义。
{
name: indexName,
fields:
[{
name: 'Name',
type: 'Edm.String',
searchable: true,
filterable: false,
retrievable: true,
sortable: false,
analyzer: "keyword-analyzer",
facetable: false,
key: false
}
],
scoringProfiles: [],
defaultScoringProfile: null,
corsOptions: null,
analyzers: [
{
"name": "keyword-analyzer",
"@odata.type": "#Microsoft.Azure.Search.CustomAnalyzer",
"charFilters": [],
"tokenizer": "keyword_v2",
"tokenFilters": ["lowercase"]
}
],
}
有人可以帮我这个忙吗?无论有没有特殊字符,如何实现我的目标?