Я использую Apache SOLR для индексации документов уценки.Как вы знаете, Markdown представляет собой обычный текст со специальными тегами для форматирования, например, жирным шрифтом и курсивом.Проблема заключается в следующем: если уценка имеет жирный или курсивный формат, полнотекстовый поиск не работает.Однако, если документ уценки не имеет элементов форматирования (полужирный, курсив или заголовок, ссылки и т. Д.) - работает полнотекстовый поиск.Подводя итог, это работает, когда документ уценки совпадает с обычным текстом (т. Е. Ни одно слово не имеет никакого форматирования уценки).
Я пришел к выводу, что мне нужно преобразовать уценку в открытый текст перед индексацией документов.Только тогда полнотекстовый поиск будет работать как положено во всех случаях.Я занимался поиском и чтением на разных онлайн-форумах.Я думаю, что мне нужно реализовать собственный анализатор.Пользовательский анализатор должен сначала преобразовать уценку в открытый текст, а затем проиндексировать ее.Я думаю, что эта ситуация похожа на то, что Apache Tika
делает для документов Microsoft.Он анализирует документы MS Office и извлекает простой текст.Я думаю, что мне нужно подобное.Я думаю, что для документов уценки тоже - мне нужно разобрать и преобразовать в простой текст.Я уже нашел способ конвертировать уценку в открытый текст.
Однако я не уверен, действительно ли мне нужно создавать собственный анализатор.Я прочитал некоторый код для пользовательских анализаторов - но все они используют tokenFilters
.Насколько я понимаю, tokenFilters
работают в потоке на основе токена.В моем случае весь markdown
корпус должен быть преобразован в plain text
.Поэтому, пожалуйста, предложите подход для этого.Другой подход, который я обдумал, - сначала преобразовать уценку в открытый текст, а затем сохранить открытый текст вместе с уценкой на диск.Но я хочу избежать этого и справиться с этим в SOLR.Я ожидаю, что SOLR преобразует его в обычный текст, а затем индексирует его.
- Должен ли я создавать
custom analyzer
для сохранения markdown
документов в plain text
?Или custom query parser
требуется? - Может ли кто-нибудь привести пример кода для того же (псевдокод тоже подойдет).
Пожалуйста, помогите.