Проблема с индексированием Solr, цепочка индексирования Solr не завершена

Анализ с индексом [![][1]

В моем solr я получаю этот результат после запуска анализа для индексации. У меня есть ряд документов, содержащих слово Машинное обучение, но кажется, что что-то сломалось и цепочка индексации не завершилась. Могу ли я найти обходной путь для этого?

Тип поля для искомого значения: <field name="Skills" type="text_general" indexed="true" stored="true"/>

РЕДАКТИРОВАТЬ 1:

Анализ с запросом: Анализ с запросом


person Kabhi    schedule 17.02.2017    source источник


Ответы (2)


Я предполагаю, что «SF» является фильтром Стемминга — фильтр удалит общие окончания, чтобы «машина» соответствовала «машинам», сохраняя «машину» в качестве общего термина в индексе. Пока поиск выполняется как при индексировании, так и при запросе, вы должны получить результат, который ищете.

EdgeNGramFilter хранит токен для каждой дополнительной буквы в токене, поэтому вы получаете токен (который будет соответствовать токену запроса) для каждой дополнительной буквы (где ваш фильтр, похоже, настроен на 3 как минимальный размер ngram).

Если при поиске вы также не выполняете выделение корней, запрос machine не найдет совпадающих терминов, поскольку токен после индексации был сохранен как machin.

Используйте раздел «запрос» и «индекс» на странице анализа, чтобы увидеть, как анализируется и обрабатывается каждая часть, и понять, почему они не заканчиваются одинаковыми терминами с обеих сторон (конечные токены с обеих сторон сравниваются). , и если они одинаковые, есть совпадение - это показано на слегка затемненном фоне в интерфейсе IIRC).

person MatsLindh    schedule 17.02.2017
comment
я также добавил раздел запроса. SF здесь имеет полные слова. - person Kabhi; 17.02.2017
comment
Но являются ли оба этих фильтра стволовых фильтров SF? фильтры синонимов? Вы можете увидеть полное имя класса, если наведете курсор на текст SF. Вы также можете захотеть, чтобы фильтр нижнего регистра находился в том же положении, что и раньше. Добавление определения поля также будет полезно, но, как вы видите, при запросе токеном является «машина», а «машина» — это токен, полученный в результате индексации. Поскольку они не совпадают, вы не получите хит. - person MatsLindh; 17.02.2017

Я не уверен, что означает ваше первое изображение, но ваши два изображения показывают разный порядок фильтров токенов.

В качестве примечания к фильтру Stem: фильтр токенов kstem — это высокопроизводительный фильтр для английского языка. Все термины уже должны быть в нижнем регистре (используйте фильтр нижнего регистра), чтобы этот фильтр работал правильно.

Ваше первое изображение показывает, что у вас есть LCF (LowercaseFilter) в качестве первого фильтра токена. Но ваше второе изображение показывает, что сначала вы запускаете фильтр ствола, а затем выполняете LCF (LowercaseFilter), это не сработает.

person XL Zheng    schedule 18.02.2017