Полнотекстовый поиск в транскрипте позволяет находить слова и словосочетания в выбранной записи.

Для начала поиска нажмите на иконку "Поиск" или на строку поиска:

Доступные опции поиска:

  • Источник:

    • Морфология – поисковый запрос автоматически приводится ко всевозможным формам слов. Например, поисковый запрос "жаловаться" ищет в транскрипте слова "жалуюсь", "жалуется", "жаловались", "пожалуемся" и т.д.

    • Текст – поисковый запрос осуществляется без приведения форм слов. Например, поисковый запрос "жаловаться"  ищет в транскрипте слово "жаловаться" и никакие другие.

  • Канал:

    • Оба – поиск осуществляется и в канале оператора, и клиента.

    • Клиент – поиск идёт только по фразам клиента.

    • Оператор – поиск идёт только фразам оператора.

  • Точное совпадение:

    • Ищет точное совпадение словосочетаний.

  • Целые слова:

    • Ищет точное совпадение слов.

Поиск с неизвестными

Синтаксис

Строка поиска поддерживает использование символов * для указания расстояния между слов. Существует два пути указать расстояние:

  • использовать несколько звездочек что бы указать расстояние - например: "привет *** пока" - означает что максимальное расстояние между словами может быть три слова, т.е. "Привет меня зовут Дарья пока" - проходит; "Привет меня зовут Дарья Иванова пока" - не проходит
  • использовать цифру после звездочки что бы указать расстояние - например "привет *3 пока" - равнозначно примеру из предыдущего пункта

Механизм поиска

К сожалению на данный момент не найден способ реализовать поиск в Elastic-е что бы он работал именно так как описано в предыдущем параграфе (надеюсь что когда-нибудь я получу ответ в сообществе elastic-а). Поэтому исходная фраза разбивается на несколько фраз и для каждой фразы определяется параметр slop который указывает максимальное расстояние между словами в секции match_phrase.

Рассмотрим следующую фразу "Добрый день **** чем могу помочь *10 соединяю". Данная фраза будет разбита на следующие секции:


Таким образом будет найден транскрипт где есть фразы:

  • "Добрый день"
  • "чем могу помочь"
  • "Добрый день чем могу помочь" - с максимальным расстоянием между слов 4ре слова
  • "чем могу помочь соединяю" - с максимальным расстоянием между слов 10ть слов

Это значит что мы не можем гарантировать что поиск будет произведен верно, однако можем сказать что это произойдет с высокой степенью вероятности.

Использование данного синтаксиса в Яндексе так же дало не 100% совпадение.