天蓝色搜索自定义分析器,用于特殊字符处理

时间:2020-08-05 17:12:33

标签: azure azure-cognitive-search

以前,我没有为索引使用特定的分析器。那时我在搜索时遇到特殊字符的问题。以下是“我的姓名”字段中的示例单词。

“ 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"]
            }
        ],
}

有人可以帮我这个忙吗?无论有没有特殊字符,如何实现我的目标?

0 个答案:

没有答案
相关问题