Hadoop环境搭建
- - 统计之都Author:张丹(Conan). @晒粉丝 http://www.fens.me. @每日中国天气 http://apps.weibo.com/chinaweatherapp. RHadoop实践系列文章. RHadoop实践系列文章,包含了R语言与Hadoop结合进行海量数据分析. Hadoop主要用来存储海量数据,R语言完成MapReduce 算法,用来替代Java的MapReduce实现.
因近期想搞个知识库,所以选择solr,现在最新的solr是4.0,所以用solr4.0。
服务器:tomcat6
JDK :1.6
SOLR :4.0
中文分词器 :ik-analyzer,mmseg4j
安装:目前mmseg4j的版本是mmseg4j-1.9.0.v20120712-SNAPSHOT,经过测试,发现这个版本有bug:
java.lang.RuntimeException: java.lang.NoSuchMethodError: org.apache.l ucene.analysis.Tokenizer.reset(Ljava/io/Reader;)V
由于solr4.0对其中的有些类与方法做了调整,所以还是等待mmseg4j新版本修复吧。果断使用了ik-analyzer。
一、将apache-solr-4.0.0\example\webapps\solr.war放在tomcat的webapps下启动服务器解压该war包,另外还需要增加几个jar包:
apache-solr-dataimporthandler-4.0.0.jar
apache-solr-dataimporthandler-extras-4.0.0.jar
这两个jar包可以在solr的dist中可以找到
另外还需要相应数据库的驱动包,比如
mysql-connector-java-5.1.13-bin.jar
二、将apache-solr-4.0.0\example下的solr拷贝至apache-tomcat-6.0.29-solr\bin下
三、在apache-tomcat-6.0.29-solr\bin\solr\collection1\conf下的solrconfig.xml增加以下数据库配置
<requestHandler name="/dataimport" class="org.apache.solr.handler.dataimport.DataImportHandler"> <lst name="defaults"> <str name="config">data-config.xml</str> </lst> </requestHandler>
四、将apache-tomcat-6.0.29-solr\bin\solr\collection1\conf下增加data-config.xml文件,内容如下:
<dataConfig> <dataSource type="JdbcDataSource" driver="com.mysql.jdbc.Driver" url="jdbc:mysql://localhost:3306/solrdb" user="root" password="888888"/> <document name="content"> <entity name="node" query="select id,author,title,content from solrdb"> <field column="id" name="id" /> <field column="author" name="author" /> <field column="title" name="title" /> <field column="content" name="content" /> </entity> </document> </dataConfig>
五、增加中文分词器,ik-analyzer的配置如下:
它的安装部署十分简单,将IKAnalyzer2012.jar部署亍项目的lib目录中;IKAnalyzer.cfg.xml不stopword.dic文件放置在class根目录(对于web项目,通常是WEB-I NF/classes目彔,同hibernate、log4j等配置文件相同)下即可
solr4.0中schema.xml配置解析器:
<schema name="example" version="1.1"> …… <fieldType name="text" class="solr.TextField"> <analyzer class="org.wltea.analyzer.lucene.IKAnalyzer"/> </fieldType> …… </schema>六、schema.xml完整配置:
<?xml version="1.0" encoding="UTF-8" ?> <schema name="example" version="1.5"> <types> <fieldType name="long" class="solr.TrieLongField" precisionStep="0" positionIncrementGap="0"/> <fieldType name="string" class="solr.StrField" sortMissingLast="true" /> <!-- IKAnalyzer 配置 --> <fieldType name="text" class="solr.TextField"> <analyzer class="org.wltea.analyzer.lucene.IKAnalyzer"/> </fieldType> </types> <fields> <field name="id" type="string" indexed="true" stored="true" required="true" /> <field name="author" type="text" indexed="true" stored="true" multiValued="false"/> <field name="title" type="text" indexed="true" stored="true" multiValued="false"/> <field name="content" type="text" indexed="true" stored="true" multiValued="false" /> <field name="_version_" type="long" indexed="true" stored="true"/> </fields> <uniqueKey>id</uniqueKey> <defaultSearchField>content</defaultSearchField> <solrQueryParser defaultOperator="OR"/> <copyField source="title" dest="content"/> <copyField source="author" dest="content"/> </schema>
解析:multiValued的个人理解是配置true则返回单条数据,false则可以返回多条,以后深入理解了再详解。defaultSearchField配置默认搜索索引,copyField可以讲 title、author字段添加至content默认搜索中
七、登录管理页面:
中文分词器分词的示例:
query示例: