Я использую Porter Stemmer для обозначения слов, и вот проблема, с которой я сталкиваюсь:
Слово «ипотека» правильно обозначено как «ипотека»
Слово «залогодержатель» (возможно, неправильно) происходит от слова «ипотека»
Существует около 100 документов со словом «ипотека»
Имеется 1 документ со словом "залогодержатель"
Когда я строю индекс без указания «залогодержателя» в каких-либо документах, все работает нормально: поиск «ипотека», «ипотека» или «ипотека» возвращает все 100 документов.
Когда я создаю индекс и один из документов содержит «залогодержатель», поиск по индексу «ипотека» возвращает только один документ с «залогодержателем» (который был сокращен до «ипотека»). Тем не менее, поиск «mortgag» или «ипотека» возвращает все 100 документов.
Единственный логический вывод, который я могу сделать из этой проблемы, - это то, что lucene сначала ищет слово с предварительным основанием, и, если оно не находит никаких результатов, оно продолжает поиск слова с основанием. Таким образом, при поиске «ипотеки» он сначала находит «ипотеку», полученную от «залогодержателя», и прекращает поиск. Это правильное поведение или это ошибка?