solr.xml内信息如下:
- <Context docBase="/Volumes/mac_2/data/apache-solr-1.4.0.war" debug="0" crossContext="true" >
- <Environment name="solr/home" type="java.lang.String" value="/Volumes/mac_2/data/solr" override="true" />
- </Context>
docBase 和 value的内容请根据自己情况来定义。
data的zip我上传了。。下载地址:http://dl.iteye.com/topics/download/4027b059-1173-3660-9d71-f63d6491372f
第二步:
保证tomcat链接时是utf-8.。。在tomcat的conf目录下找到server.xml,,,
在原有基础上增加 URIEncoding="UTF-8"
- <Connector executor="tomcatThreadPool"
- port="8080" protocol="HTTP/1.1"
- connectionTimeout="20000"
- redirectPort="8443" URIEncoding="UTF-8" />
第三步:
浏览器打开http://localhost:8080/solr/admin,看到管理界面就是ok拉。
测试下分词:打开http://localhost:8080/solr/admin/analysis.jsp
在Field这里选择 type,,,对应的输入text_cn
Field value这里两个选择框都打钩,,输入任意中文
点Analyze,,就能看到使用的分词和它如何分词的。
第四步 一个简单的java调用
- /*
- * To change this template, choose Tools | Templates
- * and open the template in the editor.
- */
- package solrjexample;
- /**
- *
- * @author liuping
- */
- import org.apache.solr.client.solrj.SolrServer;
- import org.apache.solr.client.solrj.SolrServerException;
- import org.apache.solr.client.solrj.impl.CommonsHttpSolrServer;
- import org.apache.solr.client.solrj.response.QueryResponse;
- import org.apache.solr.common.SolrDocument;
- import org.apache.solr.common.params.ModifiableSolrParams;
- import java.net.MalformedURLException;
- public class Main {
- public static void main(String[] args) throws MalformedURLException, SolrServerException {
- SolrServer server = new CommonsHttpSolrServer("http://localhost:8080/solr");
- ModifiableSolrParams params = new ModifiableSolrParams();
- // 查询关键词
- params.set("q", "2010");
- // 分页,,start=0就是从0开始,,rows=5当前返回5条记录,,,第二页就是变化start这个值为5就可以了。
- params.set("start", 0);
- params.set("rows", 5);
- // 排序,,如果按照id 排序,,那么将score desc 改成 id desc(or asc)
- params.set("sort", "score desc");
- // 返回信息 * 为全部 这里是全部加上score,如果不加下面就不能使用score
- params.set("fl", "*,score");
- QueryResponse response = server.query(params);
- // 搜索得到的结果数
- System.out.println("Find:"+ response.getResults().getNumFound()+"\n\n");
- // 输出结果
- for(SolrDocument doc:response.getResults())
- {
- System.out.println("id: " + doc.getFieldValue("id").toString());
- System.out.println("title: " + doc.getFieldValue("title").toString()+"\n");
- }
- }
- }
第五步:php调用
php的code最短
在solrconfig.xml将这两个注释去掉
<queryResponseWriter name="php" class="org.apache.solr.request.PHPResponseWriter"/>
<queryResponseWriter name="phps" class="org.apache.solr.request.PHPSerializedResponseWriter"/>
PHP 发挥PHP数组信息
- $code = file_get_contents('http://localhost:8983/solr/select?q=iPod&wt=php');
- eval("\$result = " . $code . ";");
- print_r($result);
PHPS 返回序列化信息,注意:一些中文可能在反序列化时丢失信息。
- $serializedResult = file_get_contents('http://localhost:8983/solr/select?q=iPod&wt=phps');
- $result = unserialize($serializedResult);
- print_r($result);