欢迎各位兄弟 发布技术文章
这里的技术是共享的
这次安装的系统是Ubuntu 12.04 Server 版,Apache Solr 和IKAnalyzer 都没变,不过环境和之前不一样,把过程记录下来,供大家参考。
注意:如果你在接下来的过程中有直接复制粘贴代码的操作,粘贴后要将引号替换成英文引号。
步骤:·
1 、相关程式下载·
2 、安装 jdk 7·
3 、安装 Jetty 9·
4 、安装 Solr 4.9·
5 、Solr 多核配置·
7 、配置中文分词
1 、首先是下载相关程式大家可以直接通过伺服器下载,也可以本地上传,当然,如果你能去机房用U 盘挂载读取也是可以的。下面是下载连结以及网盘位址:
· Apache Solr 4.9 :http://archive.apache.org/dist/lucene/solr/4.9.0/solr-4.9.0.zip
· Apache Solr 4.9 :网盘下载 Apache Solr 4.9密码: mi4i
· 其他Apache Solr :http://archive.apache.org/dist/lucene/solr/
· Jetty 9 :http://download.eclipse.org/jetty/stable-9/dist/
· Jetty 9 :网盘下载 Jetty 9密码: xbv0
· IKAnalyzer 2012FF_hf1.zip :https://code.google.com/p/ik-analyzer/
· IKAnalyzer 2012FF_hf1.zip :网盘下载 IKAnalyzer 2012FF_hf1.zip密码: utqv
· 修改后的jar 包:IKAnalyzer2012FF_u1_custom.jar密码: 6bjm
2 、接下来安装jdk 7因为Jetty 9 的运行需要java 环境,如果你的ubuntu 上有安装且不低于jdk 7 就可以跳过这一步了,如果你没有安装过,那就先安装一个,很简单的:
1. sudo apt-get install -y openjdk-7-jdk
2. sudo mkdir -p /usr/java
3. sudo ln -s /usr/lib/jvm/java-7-openjdk-i386 /usr/java/default
4. echo "export JAVA_HOME=/usr/java/default" >> ~/.profile 上面第三行命令呢是32 位元系统下的,如果是64 位元的系统,路径就应该是/usr/lib/jvm/java-7-openjdk-amd64。
3 、现在安装Jetty 9首先进入到Jetty 压缩包所在的资料夹,解压到/opt 下,之后设置$JETTY_HOME ,创建一个jetty 用户并设置为$JETTY_HOME 的所有人。
1. tar zxvf jetty-distribution-9.2.3.v20140905.tar.gz -C /opt
2. mv /opt/jetty-distribution-9.2.3.v20140905/ /opt/jetty/
3. echo "export JETTY_HOME=/opt/jetty/" >> ~/.profile
4. sudo useradd jetty -U -s /bin/ false
5. sudo chown -R jetty :jetty /opt/jetty 复制jetty.sh 到/etc/init.d/ 下,让它作为一个服务运行。
1. sudo cp -a /opt/jetty/bin/jetty.sh /etc/init.d/jetty 在/etc/default 下创建Jetty 设定档
1. sudo nano /etc/default/jetty 并粘贴下面代码,注释记得去掉:
1. JAVA_HOME=/usr/java/default # Java 路径
2. JETTY_HOME=/opt/jetty # Jetty 路径
3. NO_START=0 # 设置为
0 ,允许jetty 开启
4. JETTY_HOST=0.0.0.0 # 设置
0.0.0.0 ,则IP 和localhost 都可以访问
5. JETTY_USER=jetty # 作为该用户运行保存后就可以开启Jetty 了
1. sudo service jetty start 当看到提示:Starting Jetty: OK 时,说明开启成功。我们访问http://localhost:8080/试试。提示有错误:Error 404 - Not Found No context on this server matched or handled this request. Contexts known to this server are查看了一下,因为/opt/jetty/webapps/ 下面是空的,复制下面的档就好了。
1. sudo cp -R /opt/jetty/demo-base/webapps /opt/jetty/ 附:如果想要jetty 开机启动,下面命令搞定
1. sudo update-rc.d jetty defaults 如果想更改Jetty 埠,编辑$JETTY_HOME 下的start.d/http.ini ,修改jetty.port
1. sudo nano /opt/jetty/start.d/http.ini
1. — module =http
2. ## HTTP Connector Configuration
3. jetty.port=8080
4. http.timeout=30000
4 、安装Solr 4.9终于开始配置Solr 了,首先第一步当然还是解压缩,位置任意
1. sudo tar zxvf solr-4.9.0.tgz -C /tmp 复制.war 包到$JETTY_HOME 下的webapps 资料夹,复制example/solr 到/opt ,dist 资料夹和contrib 资料夹也是必需的。
1. sudo cp -a solr-4.9.0/dist/solr-4.9.0.war /opt/jetty/webapps/solr.war
2. sudo cp -a solr-4.9.0/example/solr /opt/solr
3. sudo cp -a solr-4.9.0/dist /opt/solr
4. sudo cp -a solr-4.9.0/contrib /opt/solr 复制context 和一些模组以确保solr 在jetty 上正确运行
1. sudo cp -a solr-4.9.0/example/contexts/solr-jetty-context.xml /opt/jetty/webapps/solr.xml
2. sudo cp -a solr-4.9.0/example/lib/ext/* /opt/jetty/lib/ext/ 添加下面代码到jetty 设置档第一行
1. sudo nano /etc/default/jetty
1. JAVA_OPTIONS= "-Dsolr.solr.home=/opt/solr $JAVA_OPTIONS"修改solrconfig.xml 里面的路径,确保solr 能读取到改变结构后的contrib 和dist 下的档
1. sudo nano /opt/solr/collection1/conf/solrconfig.xml
1. <lib dir= "../../contrib/extraction/lib" regex= ".*.jar" />
2. <lib dir= "../../dist/" regex= "solr-cell-d.*.jar" />
3. <lib dir= "../../contrib/clustering/lib/" regex= ".*.jar" />
4. <lib dir= "../../dist/" regex= "solr-clustering-d.*.jar" />
5. <lib dir= "../../contrib/langid/lib/" regex= ".*.jar" />
6. <lib dir= "../../dist/" regex= "solr-langid-d.*.jar" />
7. <lib dir= "../../contrib/velocity/lib" regex= ".*.jar" />
8. <lib dir= "../../dist/" regex= "solr-velocity-d.*.jar" /> 更改solr 的用户组
1. sudo chown -R jetty :jetty /opt/solr OK ,现在可以重启jetty 了,solr 访问位址:http://localhost:9090/solr
1. sudo service jetty restart 注意:我在本地测试的时候,用chrome 打开solr 会一直缓冲,有内容载入不完全,换其他流览器就好了
5 、Solr 的多核配置
1. cd /opt/solr/
2. sudo mv collection1/ core0/
3. sudo cp -R core0/ core1/
4. cd core1/
5. sudo nano core.properties 修改name 值为资料夹名称
1. name=core1 保存后记得修改用户组,并重启jetty 。多核地址:· http://localhost:8080/solr/core0· http://localhost:8080/solr/core1
6 、为Drupal 网站安装配置apachesolr下载安装后apachesolr 后,开启Apache Solr search ,Apache Solr framework 。复制apachesolr 模组的设定档,粘贴到/opt/solr 。具体命令:
1. cd sites/all/modules/apachesolr/solr-conf/solr-4.x
2. sudo cp *.* /opt/solr/collection1/conf/ 修改用户组,重启Jetty ,之后访问http://your.drupal.site/admin/config/search/apachesolr/settings,点击Add search environment (添加搜索环境),Solr Server Url 填写你的搜索核心的地址:http://localhost:8080/solr/core0 。保存之前可以点击下面的Test connect (测试连结)用来测试一下,提示Your site has contacted the Apache Solr server 则说明连接成功。接下来研究中文分词。
7 、drupal 的中文分词之前有讲过IKAnalyzer 中文分词的配置方法以及自订修改,详情:· windows 系统组态 solr 和 Ikanalyzer· 修改 Ikanalyzer 智能分词和细细微性分词档这部分还是使用IKAnalyzer 2012FF_hf1.zip 以及我修改过的IKAnalyzer2012FF_u1_custom.jar ,下面是具体方法在/opt/solr/ 下创建两个资料夹,lib/ 和classes/ ,然后将IKAnalyzer2012FF_u1_custom.jar 放在lib 下,将IKAnalyzer.cfg.xml 、stopword.dic 放在classes 下
1. sudo mkdir /opt/solr/lib
2. sudo mkdir /opt/solr/classes
3. sudo cp IKAnalyzer2012FF_u1_custom.jar /opt/solr/lib/
4. sudo cp IKAnalyzer.cfg.xml /opt/solr/classes/
5. sudo cp stopword.dic /opt/solr/classes/ 这里我们没有把.jar 档放在/opt/jetty/solr-webapp/webapp/WEB-INF/lib/ 下的原因是jetty 启动时会将/opt/jetty/webapps/solr.war 解压到这里,我们的分词.jar 会被删掉。之后修改schema.xml 文件
1. sudo nano /opt/solr/core0/conf/schema.xml 在开头的位置,找到下面这行代码,将version 的值改为
1.5 。
1. < schema name = "drupal-4.3-solr-4.x" version = "1.3" > 这里修改的原因让Solr 先对搜索的短语进行分词然后再搜索。版本为
1.3 时,搜索的短语solr 不进行分词,而是直接搜索,也就是你在搜索栏输入什么,solr 就搜索什么,是完全匹配搜索,这对我们是没有意义的。版本修改为
1.5 之后,solr 会先对搜索栏里的词或句子进行分词处理,之后根据分词结果搜索。而这就是我们想要的结果和搜索方式。接下来在types 标签内添加分词处理代码:
1. <fieldType name="text_ik" class ="solr.TextField" >
2. <analyzer type="index" class ="org.wltea.analyzer.lucene.IKAnalyzerWithSmart" />
3. <analyzer type ="query" class ="org.wltea.analyzer.lucene.IKAnalyzerWithoutSmart" />
4. </fieldType >在fields 标签内找到name=label 的field ,如下,然后修改type 为:text_ik ,也就是上面分词的fieldType 的name 。类似的还有content 等栏位。
1. <field name="label" type="text" indexed="true" stored="true" termVectors="true" omitNorms="true" />修改为
2. <field name="label" type="text_ik" indexed="true" stored="true" termVectors="true" omitNorms="true" /> 在最后我们来到档的末尾,将默认操作符改为OR
1. <solrQueryParser defaultOperator="AND" />修改为
2. <solrQueryParser defaultOperator="OR" /> 转载请注明:QiKor » Apache Solr 4.9 和 IKAnalyzer 中文分词配置(续) Ubuntu 上的 Drupal
张贴者: 冬阳 于 上午9:55 标签: Drupal , Solr
来自 http://coding-life-misc.blogspot.com/2015/06/ubuntu-drupal-apache-solr-49-ikanalyzer.html