Как использовать n-граммы приблизительного соответствия с Solr?

У нас есть база данных фильмов и сериалов, и поскольку данные поступают из многих источников различной надежности, мыЯ хотел бы иметь возможность делать нечеткие совпадения строк в названиях эпизодов. Мы используем Solr для поиска в нашем приложении, но механизмы сопоставления по умолчанию работают на уровне слов, что недостаточно для коротких строк, таких как заголовки

В прошлом я использовал примерное соответствие по n-граммам, и я был очень рад обнаружить, что Lucene (и Solr) поддерживают что-то подобное из коробки. К сожалению я нене смог правильно его настроить.

Я предположил, что мне нужен специальный тип поля для этого, поэтому я добавил следующий тип поля в мой schema.xml:

 
  
    
    
  
 

и изменил соответствующее поле в схеме:

 

Тем не менее, это не работает, как я ожидал. Анализ запросов выглядит правильно, но я неЯ не получаю никаких результатов, что заставляет меня поверить, что что-то происходит во время индексации (т. е. заголовок индексируется как строковое поле по умолчанию вместо поля триграммы).

Запрос я пытаюсь что-то вроде

title:"guy walks into a psychiatrist office"

(с опечаткой или два), и это должно соответствоватьПарень заходит в кабинет психиатра ".

(Я не совсем уверен, что запрос правильный.)

Более того, я хотел бы иметь возможность сделать что-то большее на самом деле. Я'Мне бы хотелось понизить строку, удалить все знаки препинания и пробелы, удалить английские стоп-слова, а затем изменить строку на триграммы. Однако фильтры применяются только после токенизации строки ...

Заранее спасибо за ваши ответы.

Ответы на вопрос(2)

Ваш ответ на вопрос