[solr] 三步建立 solr 应用,,,java,PHP 调用solr 代码
imjl
2010-02-08
首先自己保证你的tomcat能跑起来。
第一步:在tomcat的conf目录下新建Catalina目录,在Catalina目录下新建localhost目录,在localhost目录下新建solr.xml 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,,就能看到使用的分词和它如何分词的。 说明:solr管理界面支持firefox,safari有问题。这里只是简单搭建,没有优化。 solr官方网站 http://lucene.apache.org/solr/ wiki http://wiki.apache.org/solr/FrontPage |
|
imjl
2010-02-09
一个简单的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"); } } } |
|
imjl
2010-02-09
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); |
|
zouershun
2011-08-10
在Field这里选择 type,,,对应的输入text_cn 会报Unknown Field Type: text_cn
|
|
yjp0501
2011-08-26
同上,怎么解决,或者说有哪些 type
|
|
yjp0501
2011-08-30
试了一下,text是存在的,text_cn不存在,text可以中文分词,只是中文分词是默认的一个字分一个,比如“今天上午”,它会分成 ‘今’‘天’‘上’‘午’四个,而不是‘今天’‘上午’这两个
|