Я пытаюсь включить фонетический анализатор и синонимы вместе.Это не похоже на работу.Неправильно ли использовать их вместе?
В приведенной ниже реализации я ожидаю, что поисковый запрос будет преобразован с использованием синонимов, а затем будет использован фонетический анализатор для получения результатов.Но мои синонимы здесь полностью игнорируются.
Если я удаляю фонетический анализатор как часть создания индекса, то синонимы работают нормально.
Кроме того, синонимы работают нормально, если я использую встроенные анализаторы, такие как en.microsoft
;вместо пользовательских анализаторов.Это ошибка?
Моя карта синонимов
{
"name":"mysynonymmap",
"format":"solr",
"synonyms": "
SW, Software, Softvare, software, softvare, sft\n
HW, Hardware, Hardvare, hardware, hardvare, hdw => hardware\n"
}
Ниже показано, как создается индекс
"name": "newphonetichotelswithsynonyms",
"fields": [
{"name": "hotelId", "type": "Edm.String", "key":true, "searchable": false},
{"name": "baseRate", "type": "Edm.Double"},
{"name": "description", "type": "Edm.String", "filterable": false, "sortable": false, "facetable": false, "analyzer":"my_standard",
"synonymMaps":[
"mysynonymmap"
]},
{"name": "hotelName", "type": "Edm.String", "analyzer":"my_standard",
"synonymMaps":[
"mysynonymmap"
]},
{"name": "category", "type": "Edm.String", "analyzer":"my_standard",
"synonymMaps":[
"mysynonymmap"
]},
{"name": "tags", "type": "Collection(Edm.String)", "analyzer":"my_standard",
"synonymMaps":[
"mysynonymmap"
]},
{"name": "parkingIncluded", "type": "Edm.Boolean"},
{"name": "smokingAllowed", "type": "Edm.Boolean"},
{"name": "lastRenovationDate", "type": "Edm.DateTimeOffset"},
{"name": "rating", "type": "Edm.Int32"},
{"name": "location", "type": "Edm.GeographyPoint"}
],
"analyzers":[
{
"name":"my_standard",
"@odata.type":"#Microsoft.Azure.Search.CustomAnalyzer",
"tokenizer":"standard_v2",
"tokenFilters":[ "lowercase", "asciifolding", "phonetic" ]
}
]
}````