ubuntu下安装和配置solr
其实安装solr 还是蛮简单的 但是第一次弄 被 tomcat的错误提示搞得头大!
菜鸟 安装tomcat方法相信你懂的
sudu apt-get install tomcat6
.。。。
相信一定是通顺的
启动tomcat
# /ect/init.d/tomcat6 start
下载最新的solr
人人的源 比较给力
http://labs.renren.com/apache-mirror//lucene/solr/3.5.0/apache-solr-3.5.0.zip
下载完apache-solr-3.5.0.zip,解压。将apache-solr-3.5.0\dist下的apache-solr- 3.5.0.war改名为solr.war并拷贝到tomcat6目录下的webapps目录中。(tomcat6在 /var/lib下)
将apache-solr-3.5.0\example\ 下的 solr 目录拷贝到任意位置,我是放在:/var/lib/tomcat6/solr
在tomcat目录下的conf\Catalina\localhost 目录中(如果没有则手工创建该目录)创建solr.xml文件,文件内容如下:
<Context docBase="/var/lib/tomcat6/webapps/solr.war" debug="0" crossContext="true" >
<Environment name="solr/home" type="java.lang.String" value="/var/lib/tomcat6/solr" override="true" />
</Context>
重新启动tomcat(/etc/init.d/tomcat6 restart)。在浏览器中输入http://localhost:8080/solr/,出现“Welcom to Solr”页面,说明安装成功。
这个时候 看到欢迎后 点 http://localhost:8080/solr/admin 的链接 发现报错了!
你有木有?反正我是有!错误提示: HTTP ERROR: 404 missing core name in path 。。。。。。。。N多错误各种不懂!
谷歌出来全是鸟文 纠结阿!!
后来在apache-solr-3.5.0\example\ 下某个地方看到来 core0的文件夹很特殊
于是 拷贝到/var/lib/tomcat6/solr
重启tomcat
这个core 果然是核心!
成功了!
/var/lib/tomcat6/solr/core0/conf/schema.xml
这个文件就相当于 表的结构
终于茅塞顿开了!
尝试修改这个文件
tips 一下:如果你修改来这个配置文件 重启tomcat 后提示:HTTP ERROR: 404 missing core name in path 。。。。。。。。
反正我出现过!为什么阿?
我也搞了半天 最后是 schema.xml有错误!太变态了!
现在成功的配置了一个core!
测试把
我的 schema.xml
<schema name="example core one" version="1.1"> − <types> <fieldtype name="string" class="solr.StrField" sortMissingLast="true" omitNorms="true"/> <fieldType name="boolean" class="solr.BoolField" sortMissingLast="true" omitNorms="true"/> <fieldType name="integer" class="solr.IntField" omitNorms="true"/> <fieldType name="long" class="solr.LongField" omitNorms="true"/> <fieldType name="float" class="solr.FloatField" omitNorms="true"/> <fieldType name="double" class="solr.DoubleField" omitNorms="true"/> <fieldType name="sint" class="solr.SortableIntField" sortMissingLast="true" omitNorms="true"/> <fieldType name="slong" class="solr.SortableLongField" sortMissingLast="true" omitNorms="true"/> <fieldType name="sfloat" class="solr.SortableFloatField" sortMissingLast="true" omitNorms="true"/> <fieldType name="sdouble" class="solr.SortableDoubleField" sortMissingLast="true" omitNorms="true"/> <fieldType name="date" class="solr.DateField" sortMissingLast="true" omitNorms="true"/> − <fieldType name="textSimple" class="solr.TextField"> − <analyzer type="index" class="org.apache.lucene.analysis.cjk.CJKAnalyzer"> <tokenizer class="org.apache.lucene.analysis.cjk.CJKTokenizer"/> </analyzer> − <analyzer type="query" class="org.apache.lucene.analysis.cjk.CJKAnalyzer"> <tokenizer class="org.apache.lucene.analysis.cjk.CJKTokenizer"/> </analyzer> </fieldType> </types> − <fields> <!-- general --> <field name="id" type="integer" indexed="true" stored="true" multiValued="false" required="true"/> <field name="type" type="integer" indexed="true" stored="true" multiValued="false"/> <field name="name" type="string" indexed="true" stored="true" multiValued="false"/> <field name="title" type="textSimple" indexed="true" stored="true" multiValued="false"/> <field name="content" type="textSimple" indexed="true" stored="true" multiValued="false"/> <field name="dateline" type="string" indexed="true" stored="true" multiValued="false"/> </fields> − <!-- field to use to determine and enforce document uniqueness. --> <uniqueKey>id</uniqueKey> − <!-- field for the QueryParser to use when an explicit fieldname is absent --> <defaultSearchField>name</defaultSearchField> − <!-- SolrQueryParser configuration: defaultOperator="AND|OR" --> <solrQueryParser defaultOperator="OR"/> </schema>
默认的apache solr不支持中文检索
按照网上很多说的方法 加入来中文支持!
<fieldType name="textSimple" class="solr.TextField">
<analyzer type="index" class="org.apache.lucene.analysis.cjk.CJKAnalyzer">
<tokenizer class="org.apache.lucene.analysis.cjk.CJKTokenizer"/>
</analyzer>
<analyzer type="query" class="org.apache.lucene.analysis.cjk.CJKAnalyzer">
<tokenizer class="org.apache.lucene.analysis.cjk.CJKTokenizer"/>
</analyzer>
</fieldType>
这块话说可以支持中文 测试 确实支持 不过问题有点多!
继续摸索 下次再来讲!