Скажем, у меня есть файл синонимов с двумя строчками синонимов ниже
ft , synonym_1
10 ft , synonym_2
Когда я использую этот файл в анализаторе и анализирую слово "10 футов", я получаю следующее:
{
"tokens": [
{
"token": "10"
},
{
"token": "ft"
},
{
"token": "synonym_2",
}
]
}
synonym_1 не появляется, даже если "ft" соответствует токену в анализируемом тексте. Это из-за некоторого приоритета с одиночными токенами и фразами? Соответствует ли "10 футов" больше проанализированного текста и, следовательно, это единственный синоним, который вступает в силу? Есть ли способ заставить первый синоним работать в этом случае?
Примечание: я использую токенайзер пробелов и анализирую текст "30 футов", который дает мне синоним_1. Только когда «10 футов» появляется точно, что первый синоним нарушен.
"simplified_analyzer": {
"filter": [
"lowercase",
"stemmer",
"synonyms",
"edge_ngrams",
"remove_duplicates"
],
"char_filter" => ["remove_html", "remove_non_alphanumeric"],
"tokenizer" => "whitespace"
}
Нужно ли использовать второй фильтр синонимов для обработки отдельных слов?