【发布时间】:2021-10-19 02:17:41
【问题描述】:
我的 Azure 认知搜索中有不同的字段,但让我向您展示一些我遇到的问题。
{
"name": "Name",
"type": "Edm.String",
"searchable": true,
"filterable": false,
"retrievable": true,
"sortable": true,
"facetable": false,
"key": false,
"indexAnalyzer": null,
"searchAnalyzer": null,
"analyzer": "standard.lucene",
"synonymMaps": []
}
和
{
"name": "Code",
"type": "Edm.String",
"searchable": true,
"filterable": false,
"retrievable": true,
"sortable": false,
"facetable": false,
"key": false,
"indexAnalyzer": null,
"searchAnalyzer": null,
"analyzer": "keyword",
"synonymMaps": []
}
正如您在上面看到的,我为 Name 设置了分析器 standard.lucene(我为 NameEn 等其他字段设置了特定语言)和 Code 字段的关键字分析器。
例如,当我按 1-1 搜索时,它会查找 1 而不是 1-1。我尝试使用双引号,但似乎我也不起作用(“1-1”)。
问题是我得到的结果是数字 1 的名称,而不是 1-1 的代码。
你知道我该怎么做吗?我想我应该搜索整个短语,例如:“1-1”查询的其余部分。
【问题讨论】:
-
标准 Lucene 不标记特殊字符,您是否尝试过使用 en.microsoft 分析器?我调整了它,确实为 1-1 整体创建了一个令牌
-
@Joseandresc 我并不总是有英文内容,这就是我使用标准 Lucene 的原因。我找不到任何来自 Microsoft 的通用分析器。