【问题标题】:datastax mahout cant create TFIDF vectors from datastax solr indexingdatastax mahout 无法从 datastax solr 索引创建 TFIDF 向量
【发布时间】:2014-12-10 13:30:59
【问题描述】:

我在 datastax 4.5 创建的 solr 索引上运行 datastax 4.5 mahout。

dse mahout lucene.vector
--dir /var/lib/cassandra/data/solr.data/test.test/index/ 
--field body 
--dictOut $WORK_DIR/solr/wikipedia/dict.txt
--output $WORK_DIR/solr/wikipedia/out.txt 
--max 50

在 mahout page 中提到“您的 Lucene 索引必须使用 Mahout 中使用的相同版本的 Lucene 创建。 从 Mahout 0.9 开始,这是 Lucene 4.6.1。 ”。 datastax 4.5 仅提供 mahout 0.8。我得到了页面中所说的异常。

我安装了 Mahout 0.9 并尝试使用相同的命令来读取 datastax solr 索引。我收到错误“线程“主”java.lang.IllegalArgumentException 中的异常:不存在名称为“dse452”的 org.apache.lucene.codecs.Codec 类型的 SPI 类。”看来datastax已经修改了solr索引信息。

关于解决兼容问题的任何线索?

【问题讨论】:

    标签: solr lucene mahout datastax-enterprise datastax


    【解决方案1】:

    在您的类路径中包含 Lucene Codecs JAR:http://mvnrepository.com/artifact/org.apache.lucene/lucene-codecs

    【讨论】:

    • 嗨,我将此包添加到 mahout 类路径,它不起作用。同样的错误。我不知道它支持“dse452”的天气
    • 是 Mahout 使用的 dse452 吗?谷歌很少出现goo.gl/hAEMJB
    • 索引是由集成在datastax中的solr创建的。 “datastax 企业”的“dse”标准。我假设“452”是版本号。
    • 在这种情况下,DataStax 使用他们自己的自定义编解码器(它决定了 Lucene 如何编码和解码写入磁盘的数据)。您需要包含来自 Datastax 的包含此编解码器的 JAR。 Lucene 使用称为 SPI(服务提供者接口)的内部组件仅在运行时动态加载它需要的编解码器类。这会在文件META-INF/services 中查找编解码器列表。因此,如果您无法找到正确的 JAR 文件,请查找其中包含该文件的文件。
    • 我的意思是在上面说META-INF/services/org.apache.lucene.codecs.Codec。但它使用的是 Solr,所以它不存在。我相信您需要的 JAR 是 lib/dse-4.5.2.jar,编解码器在 ./com/datastax/bdp/search/lucene/codecs/。因此,将该 JAR 添加到类路径并尝试在项目的类路径中创建一个META-INF/services/org.apache.lucene.codecs.Codec 文件。该文件应该只包含“com.datastax.bdp.search.lucene.codecs.DseCodec”。如果您无法理解 Lucene 如何加载编解码器,请参阅本教程:opensourceconnections.com/blog/2013/06/05/…
    猜你喜欢
    • 2013-01-22
    • 2016-05-23
    • 2018-09-25
    • 2013-12-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-12-23
    • 2016-09-25
    相关资源
    最近更新 更多