转自:http://blog.csdn.net/aidayei/article/details/6632819
mahout lucene.vector --dir /home/test/test-in/index/ --output /home/test/test-in/outdex/part-out.vec --field body --dictOut /home/test/test-in/outdex/dict.out
问题1:版本问题( "Exception in thread "main" org.apache.lucene.index.CorruptIndexException: Unknown format version: -11" as an error.)
答:这个问题我查了半天,其实官网中已经明确提出这个问题了(详见参考资料1)。我用的是lucene3.1生成的索引,而mahout-0.4中所带的lucene包是3.0.2版,所以报了这个错误。把mahout换成0.5版就不报错了,0.5版中用的是lucene3.1。
问题2:hadoop为什么必须启动,才能执行转化,为什么输出结果直接到hdfs上了呢?而不是本地目录,难道是为了方便后面的聚类分析?为什么有资料说是输出到本地目录?
答:看了一下lucene.vector 源码(在mahout-utils-0.5.jar包中),mahout0.5版与之前版本在输出目录这里有不同,mahout是直接放在hdfs上,而之前版本是会判断是本地目录,如果不是,就放在hdfs上
2011-8-1修正回答:虽然mahout0.5在lucene.vector 源码中处理与之前版本不一样,但根本原因不是这里,mahout从0.4版开始,只要环境变量中设置了HADOOP_HOME,就会在HDFS上运行了,如果没设HADOOP_HOME,它会提示"no HADOOP_HOME set,running locally",此时mahout的文件格式转化命令的输入输出就是本地的目录
问题3:把nutch生成的parse_text作为kmeas输入时,也报错,不知是文件格式问题,还是数据问题?
2011-8-1答:要转成mahout的输入向量类型才行
问题4:参考资料1中说,聚类输入必须是向量形式(二进制存储),可是前面mahout入门例子中,可以直接用.data类型的文件啊
2011-8-1答:因为在入门例子中,用的是example的jar包来运行的,要运行自己的数据,就要转换数据类型,用mahout kmeans+参数来运行
如果希望索引能被mahout lucene.vector 转成向量,则需要存储termVector属性,不管是lucene还是solr中加了TermVector后,索引目录中,都会多出.tvd,.tvf,.tvx三个文件
In Solr, storing Term Vectors is as simple as setting termVectors=”true” on on the field in the schema, as in:
<field name=”text” type=”text” indexed=”true” stored=”true” termVectors=”true”/>
For pure Lucene, you will need to set the TermVector option on during Field creation, as in:
Field fld = new Field(“text”, “foo”, Field.Store.NO, Field.Index.ANALYZED, Field.TermVector.YES);
参考资料:
1.https://cwiki.apache.org/confluence/display/MAHOUT/Creating+Vectors+from+Text
2.http://www.lucidimagination.com/blog/2010/03/16/integrating-apache-mahout-with-apache-lucene-and-solr-part-i-of-3/
分享到:
相关推荐
**Lucene索引器实例详解** Lucene是一个高性能、全文本搜索库,由Apache软件基金会开发,被广泛应用于各种搜索引擎的构建。它提供了一个高级的、灵活的、可扩展的接口,使得开发者能够轻松地在应用程序中实现全文...
在使用 Lucene 进行信息检索时,有时我们需要对建立的索引进行查看、调试或分析,这时就需要借助 Lucene 的索引查看工具。 Luke 是一个非常实用的 Lucene 索引浏览器,全称为 Lucidworks Luke。它允许用户以图形化...
1. **Lucene 索引**:Lucene 的索引是一种倒排索引,它将文档中的词项(tokens)映射到包含这些词项的文档列表。这种数据结构使得搜索过程高效,能够在大量文档中快速找到包含特定关键词的文档。 2. **Luke 工具**...
本文将围绕“lucene索引查看程序及代码”这一主题,详细探讨其工作原理、主要功能以及使用方法。 首先,我们要了解什么是Lucene索引。Lucene的索引是一种倒排索引,它通过分析文档内容,将每个单词映射到包含该单词...
查询阶段,用户输入查询字符串,Lucene将这个字符串转换为查询对象,然后与索引进行匹配。查询操作通常包括以下步骤: - 查询分析(Query Parsing):将用户的输入转换为查询语法,可能涉及短语查询、布尔查询等。 ...
《深入 Lucene 索引机制》这篇博文主要探讨了Lucene这个全文搜索引擎的核心索引原理,它在信息检索领域有着广泛的应用。Lucene是一个开源的Java库,它提供了高效、可扩展的文本搜索功能。以下是对Lucene索引机制的...
- **分词器(Tokenizer)**:分词器将输入的文本分解为一系列的词语,这是建立索引的第一步。 - **分析器(Analyzer)**:分析器结合了分词器、过滤器等,负责对文本进行预处理,如去除停用词、词形还原等。 ### 2...
标题 "如何将Lucene索引写入Hadoop" 指涉的是在大数据处理场景下,如何利用Apache Lucene的全文检索功能与Apache Hadoop的分布式计算能力相结合,实现高效的数据检索。Apache Lucene是一个高性能、全文本搜索库,而...
`Luck`,全称`Luke`,是一款强大的Lucene索引浏览器和分析器工具,可以帮助开发者、数据分析师以及对Lucene感兴趣的人员查看、理解和调试Lucene索引。 `Luke 7.4.0`是这款工具的一个特定版本,它专门设计用来与...
lukeall-0.9.jar为Lucene索引查看工具,方便大家查看索引
1. **分词(Tokenization)**:Lucene使用Analyzer进行文本预处理,将输入的字符串分解成一系列独立的词汇单元(tokens)。Analyzer可以根据语言特性进行定制,例如,英文Analyzer会去除标点符号和停用词。 2. **词...
《深入理解Lucene索引文件查看工具LukeAll 4.7.1》 在信息检索领域,Lucene作为一款强大的全文搜索引擎库,被广泛应用在各种数据检索系统中。然而,对于开发者来说,理解并调试Lucene创建的索引文件并非易事。此时...
本文将深入探讨Luke的源码,揭示其如何帮助我们理解并调试Lucene索引。 首先,Luke是一个桌面应用,主要设计用于查看和分析Lucene索引。它由多个组件构成,包括源代码(src)、变更日志(CHANGES.html)、Java网络...
本文将深入探讨Lucene索引的基本操作,包括如何添加文档到索引、更新已有的索引以及相关的测试代码。 ### 1. 初始化Lucene环境 首先,我们需要导入Lucene的相关库。在Java项目中,可以通过Maven或Gradle等构建工具...
索引是Lucene处理文档的关键步骤,它将文本数据转换为一种结构化的、可快速搜索的形式。在创建索引时,Lucene会对文档进行分词,生成一系列的关键词(也称为术语或Token),然后构建倒排索引。倒排索引是一种数据...
这款已经老了,2.4以后的lucene索引用不了。我上传了最新版本的,有需要的话!请到http://download.csdn.net/source/1423241 下。一款可以查看Lucene分词后在索引的排名以及是否有无该词,很多时候用于查看有无需要...
本文将深入探讨Lucene如何读取索引文件,帮助开发者更好地理解和利用这一强大的工具。 首先,我们需要了解Lucene索引的基本结构。一个Lucene索引是由多个文件组成的,包括但不限于 segments文件、.del文件(删除...
Lucene 是一个流行的开源全文搜索引擎库,其核心功能之一就是构建高效的索引。索引文件格式是Lucene实现快速搜索的关键。以下是对Lucene索引文件格式的详细说明。 首先,我们要理解Lucene索引的基本结构。一个...
全文检索的关键在于通过建立索引,将原本非结构化的文本数据转化为结构化的表示,使得搜索过程可以高效进行。在Lucene中,这个过程包括分析文本、创建倒排索引等步骤,使得搜索操作从线性时间复杂度转变为对数时间...
**Lucene索引查看工具Luke** Lucene是一个高性能、全文本搜索库,广泛应用于各种搜索引擎的开发中。在开发和调试过程中,为了更好地理解和检查由Lucene创建的索引,通常会使用一个名为Luke的工具。Luke是"Lucene ...