"enang" - это стебель. Стебли не обязательно должны быть фактическими словами. Например, на английском языке «спорить», «утверждает» и «спорить», сводится к «аргументу» стебля. «arg» не является английским словом, но это значимая основа. Вот как работают стволовые клетки. До тех пор, пока вы применяете стеблем так же, как к индексированным данным и запросу, он должен работать хорошо.
Если вы не хотите такого поведения, нет смысла использовать штокмер вообще.
Помимо инсектицидов, индонезийский Анализер довольно легко реплицируется. Это другие компоненты, которые включают только StandardTokenizer
, StandardFilter
, LowercaseAnalyzer
и StopFilter
. Это просто StandardAnalyzer
с индонезийским набором стоп-слов, когда вы получите прямо к нему, так что вы можете создать Indonesiananalyzer без стеммера так просто, как:
//If you are using the default stopword location defined in the IndonesianAnalyzer you could load them like this.
CharArraySet defaultStopSet = StopwordAnalyzerBaseloadStopwordSet(false, IndonesianAnalyzer.class, IndonesianAnalyzer.DEFAULT_STOPWORD_FILE, "#");
Analyzer analyzer = new StandardAnalyzer(Version.LUCENE_43, defaultStopSet);
Я не уверен, будет ли у вас возникнут проблемы только передавая считыватель в файл стоп-слова по умолчанию в конструктор StandardAnalyzer.
«Индонезийский Анализатор» кажется очевидным правильным выбором. Можете ли вы объяснить, почему это неудовлетворительно? – femtoRgon
Это дает слова, которых даже не существует в индонезийском словаре. Подобно «berenang» и «pemenang», оба были связаны с «enang», которого не существует (проверено google translate). –