Я пытался использовать MoreLikeThisComponent, чтобы найти похожие документы.Что касается одного из результатов, мне было интересно узнать о терминах, используемых MLT, так как в тексте «телеинтерпретации» содержались термины, которые не были частью результатов анализа текста.
Вот какие термины были определены в ходе анализа текста:
- 1er
- anlag
- loesch
- reservierung
И вот, что вернуло слагаемое TermsComponent:
- 1er
- anlag
- geloscht
- losch
- p12
- резерв
- schneider.go
Таким образом, в соответствии с результатом анализа текста термины "p12" и "schneider.go" не должны появляться в списке терминов, возвращаемых TermsComponent.Термин «geloscht» был заменен на «loesch» во время анализа текста, и поэтому он также не должен появляться в списке терминов, возвращаемых TermsComponent.
Мой подход к анализу текста: сначала я удаляю части текста, переданные втекстовое поле с использованием PatternReplaceCharFilter.Причина в том, что все документы содержат повторяющиеся текстовые части.Эти текстовые части не имеют семантического значения и используются для обозначения типа текста, пользователя, который его добавил, и даты, когда был добавлен текстовый блок.
Два дополнительных условия, возвращаемых TermsComponent, взяты из исходного текстаи были удалены с помощью PatternReplaceCharFilter.
Я проверил, "интересные термины", определенные MLT, такие же, как и возвращенные Условиями.Я также проверил, есть ли разница между полем, в котором хранится TermVector, и текстовым полем без TermVector.Для обоих вариантов термины возвращают одни и те же термины.
Поскольку термины, используемые MLT, отличаются от терминов, определенных при анализе текста, MLT возвращает слишком много документов.
Кто-нибудь знает, почему MLTиспользует термины, а TermsComponent возвращает термины, которые не были частью результатов анализа текста?
А может, кто-нибудь знает решение?
Для полноты: я использую двоичную сборку Solr 4 Trunk из7 декабря 2011 года.