首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Lucene 5.0 UnsupportedOperationException

Lucene 5.0 UnsupportedOperationException
EN

Stack Overflow用户
提问于 2015-03-06 21:03:21
回答 1查看 193关注 0票数 0

我使用Lucene 5.0,我想添加我自己的停用词。

代码语言:javascript
复制
    CharArraySet stopSet = StandardAnalyzer.STOP_WORDS_SET;
    stopSet.add("i");
    stopSet.add("m");
    stopSet.add("t");
    stopSet.add("can");
    stopSet.add("said");
    tokenStream = new StopFilter(tokenStream, stopSet);

这是在how to add custom stop words using lucene in java中发现的。但它在我的工作中不起作用。问题如下。

代码语言:javascript
复制
Exception in thread "main" java.lang.UnsupportedOperationException
at org.apache.lucene.analysis.util.CharArrayMap$UnmodifiableCharArrayMap.put(CharArrayMap.java:606)
at org.apache.lucene.analysis.util.CharArraySet.add(CharArraySet.java:115)
at Main.main(Main.java:23)

我怎么才能解决它。非常感谢。

EN

回答 1

Stack Overflow用户

发布于 2015-03-07 08:21:15

StandardAnalyzer的停止集是不可修改的集。所以你不能修改它。不过,很容易处理,只需复制它:

代码语言:javascript
复制
CharArraySet stopSet = CharArraySet.Copy(StandardAnalyzer.STOP_WORDS_SET);
stopSet.add("i");
//etc.

然后,您可以将该停止集传递到StandardAnalyzer constructor中,或者使用它创建您自己的StopFilter

你所指的答案在这方面是不正确的。它在Lucene 3.6中也是不可修改的(至少早在2.9)。

等等..。答案是我写的。尴尬

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28899368

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档