Учитывая модель, которая выглядит следующим образом:
{
[Key]
public string Id { get; set; }
[IsSearchable]
[Analyzer(AnalyzerName.AsString.Keyword)]
public string AccountId { get; set; }
}
И пример данных для AccountId, который будет выглядеть следующим образом:
1-ABC123
1-333444555
1-A4KK498
Поле может содержать любую комбинацию букв / цифр и тире в середине.
Мне нужно иметь возможность искать в этом поле, используя такие запросы, как 1-ABC *. Однако, похоже, что ни один из базовых анализаторов не поддерживает дефис, кроме ключевого слова, которое не отвечает на запросы с подстановочными знаками, а только полностью совпадает. Я видел несколько других статей о пользовательских анализаторах, но не могу получить достаточно информации о том, как его построить, чтобы решить эту проблему.
Мне нужно знать, нужно ли мне создавать анализатор клиентов для этой области, и нужен ли мне другой анализатор поиска и анализатор индекса?
Я использую StandardLucene для других буквенно-цифровых полей без штрихов, и у меня есть еще одно поле с штрихами, но это все цифры, и Keyword там прекрасно работает. Кажется, проблема в сочетании букв и цифр.