В настоящее время мы используем анализаторы языка поиска Microsoft Azure по некоторым специальным языковым полям.В большинстве случаев он имеет большее значение, чем стандартные анализаторы языка Lucene.Но мы обнаружили проблему при проверке анализатора en.microsoft.
Проблема в том, что значение поля содержит цифры.Анализатор умен, чтобы разрешить избыточный «0» перед цифрой.
Например:
POST /analyze?api-version=2017-11-11
{
"text": "1",
"analyzer": "en.microsoft"
}
Ответ:
"tokens": [
{
"token": "1",
"startOffset": 0,
"endOffset": 2,
"position": 0
},
{
"token": "nn1",
"startOffset": 0,
"endOffset": 2,
"position": 0
}
]
Проблема в том,что если значением поля является «01», то весь текст, такой как «01», «001», «0001»,… будет соответствовать этому полю.
У нас есть поле для сохранения имени / значения атрибута продуктапары, например, «бренд: Contoso | размер: 1».Тогда даже поиск «0001» может вернуть документ с этим значением поля.Это не то, что нам нужно.
Итак, мой вопрос, есть ли способ настроить анализатор en.microsoft, чтобы мы могли воспользоваться преимуществами мощного стеммера анализатора, но избежать автоматического «0”Отступ перед цифрой?