Я пытаюсь написать текстовый анализатор для поиска и упорядочения документов, аналогичных введенному пользователем тексту, но не могу достичь требуемого результата.
Вот что я хочу достичь:
Применение токенизатора и фильтров к полю имени документа, которые анализируют текст в токенах.Я использовал это для анализатора индекса:
<tokenizer class="solr.NGramTokenizerFactory" minGramSize="2" maxGramSize="15"/>
<filter class="solr.LowerCaseFilterFactory"/>`
- Далее я хочу создать анализатор для запроса, который разбивает вводимый пользователем текст на токены по пробелам и сравнивает эти токены отдельно с оператором AND между сравнениями.
- После этого возвращайте документы, которые соответствуют токену каждого введенного слова, упорядоченного по сходству
- С подобием я имею в виду
how many tokens of user entered word contains stored documents
Например:
- Если пользователь введет
hel
, он найдет документы, содержащие hell
, helium
, hello world
, ... - Когда пользователь добавит еще одно слово, я хочу уточнить результаты, и вернет документы, содержащие токен длякаждое введенное слово.Поэтому, когда пользователь вводит
helo word
, мне нужно повысить текст документа hello world
, поскольку этот документ соответствует большему числу токенов, например helium
или hell
.
Можете ли вы сказать мне, как должен выглядеть анализатор текстадостичь моих целей поиска?Я только начинаю с Solr, поэтому буду рад любым советам.Спасибо.