Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/401.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Lucene Porter Stemmer线程安全?_Java_Multithreading_Lucene_Solr_Nlp - Fatal编程技术网

Java Lucene Porter Stemmer线程安全?

Java Lucene Porter Stemmer线程安全?,java,multithreading,lucene,solr,nlp,Java,Multithreading,Lucene,Solr,Nlp,快速提问,Lucene软件包(Java)中的porter词干分析器是线程安全的吗 我猜答案是否定的,因为您需要设置当前字符串,调用stem方法,然后获取当前块以获取词干单词。但也许我遗漏了什么——是否有线程安全的方法可以从Lucene中提取单个单词或字符串的词干 有经验的人知道实例化一个Porter词干分析器实例,然后在该词干分析器实例上使用同步块并执行setCurrent(“…”)是否更快;茎();get()例程,还是为要处理的每个字符串/文档创建一个新的波特词干分析器实例更快 在本例中,我有

快速提问,Lucene软件包(Java)中的porter词干分析器是线程安全的吗

我猜答案是否定的,因为您需要设置当前字符串,调用stem方法,然后获取当前块以获取词干单词。但也许我遗漏了什么——是否有线程安全的方法可以从Lucene中提取单个单词或字符串的词干

有经验的人知道实例化一个Porter词干分析器实例,然后在该词干分析器实例上使用同步块并执行
setCurrent(“…”)是否更快;茎();get()例程,还是为要处理的每个字符串/文档创建一个新的波特词干分析器实例更快

在本例中,我有1000多个文档,每个文档都被一个线程池占用(即,一个线程有一个文档)

编辑供参考-示例使用模式:

import org.tartarus.snowball.ext.PorterStemmer;
...
private String stem(String word){
       PorterStemmer stem = new PorterStemmer();
       stem.setCurrent(word);
       stem.stem();
       return stem.getCurrent();
    }

干杯

看看文档,类似乎不是可重入的,所以如果我是你,我会为每个线程构建一个实例。如果词干分析是您的程序所做的主要事情之一,并且没有其他方法让您的CPU内核保持忙碌,那么同步块似乎是个坏主意:程序将一直阻塞,等待词干分析完成一个文档。我也不会为每个文档创建一个线程;每个核心有一个线程的线程池可能是更明智的选择


(没有示例代码,因为我甚至无法从API docs.RTFS中找出它的用法来了解它是如何工作的…

感谢Larsmans的评论。很高兴看到你也得出了同样的结论。我同意文件,有点糟糕。对于其他感兴趣的人来说,基本使用模式已经编辑到我的问题中。在同步问题上,线程池小于文档数(20个线程)。而词干分析并不是该应用程序唯一的功能。也许最好的确定方法是测试,我想降低内存,因此同步它可能会更好。您是否检查过一个
PorterStemmer
实例有多大?我无法想象它有多大,因为它只是一个FSA加上一些
StringBuilder
机器。-1在同步方面,这并不是现在编写Java代码的方式。对于简单的对象来说,一次性对象是便宜的——但听起来每个线程都应该在文档上循环,并且可以重复使用同一个词干分析器。可能的理想设计:使线程或DocumentProcessor(单线程)成为类,stemmer实例成为该类的成员。HTH@nightolf