Solr配置与简单Demo
来源:互联网 发布:java类的初始化 编辑:程序博客网 时间:2024/06/10 05:15
简介:
solr是基于Lucene Java搜索库的企业级全文搜索引擎,目前是apache的一个项目。它的官方网址在http://lucene.apache.org/solr/ 。solr需要运行在一个servlet 容器里,例如tomcat。solr在lucene的上层提供了一个基于HTTP/XML的Web Services,我们的应用需要通过这个服务与solr进行交互。
前提,下载tomcat。省略。
第一步:下载Solr, http://www.apache.org/dyn/closer.cgi/lucene/solr/
我下载的是3.5版本,把它解压到E盘。E:/apache-solr-3.5.0
第二步:修改conf\server.xml,把8080端口所在的那一行修改如下:
<Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" URIEncoding="UTF-8"/>
也有用下面这个的。
<Connector port="8080" URLEncoder="UTF-8" redirectPort="8443" connectionTimeout="20000" protocol="HTTP/1.1"/>
其实就是增加了URIEncoding="UTF-8"这一配置。推荐用第一种,这两个区别暂时不知。
第三步:配置Solr
还是在conf目录下,增加 Catalina\localhost\solr.xml 文件,如果conf文件夹下没有Catalina,新建它。
solr.xml内容:
<Context docBase="E:/apache-solr-3.5.0/dist/apache-solr-3.5.0.war" debug="0" crossContext="true" ><Environment name="solr/home" type="java.lang.String" value="E:/apache-solr-3.5.0/example/solr" override="true" /></Context>
第四步:启动Tomcat。输入http://localhost:8080/solr/ 出现欢迎界面,表示成功。
第五步:简单Java Api 操作
参考 http://www.iteye.com/topic/315330 写的很详细了。
一个简单的写入,读出数据的完整代码如下:
package com.weishangye.test.solr;import java.util.ArrayList;import java.util.Collection;import java.util.Iterator;import org.apache.solr.client.solrj.SolrQuery;import org.apache.solr.client.solrj.SolrServer;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.SolrDocumentList;import org.apache.solr.common.SolrInputDocument;public class SolrTest1 { public static void main(String[] args) throws Exception { String url = "http://localhost:8080/solr"; SolrServer server = new CommonsHttpSolrServer(url); server.deleteByQuery( "*:*" );// delete everything! SolrInputDocument doc1 = new SolrInputDocument(); doc1.addField( "id", "id1", 1.0f ); doc1.addField( "name", "doc1", 1.0f ); doc1.addField( "price", 10 ); SolrInputDocument doc2 = new SolrInputDocument(); doc2.addField( "id", "id2", 1.0f ); doc2.addField( "name", "冰羽", 1.0f ); doc2.addField( "price", 20 ); Collection<SolrInputDocument> docs = new ArrayList<SolrInputDocument>(); docs.add( doc1 ); docs.add( doc2 ); server.add( docs ); server.commit(); SolrQuery query = new SolrQuery(); query.setQuery( "*:*" ); query.addSortField( "price", SolrQuery.ORDER.desc ); QueryResponse rsp = server.query( query ); SolrDocumentList docsList = rsp.getResults(); for(Iterator<SolrDocument> doc =docsList.iterator();doc.hasNext();){ SolrDocument d = doc.next(); System.out.print(d.getFieldValue("id")+"->"); System.out.println(d.getFieldValue("name")); } }}
0 0
- Solr配置与简单Demo
- Solr配置与简单Demo
- Solr配置与简单Demo
- maven安装 配置 与简单demo
- SOLR安装简单配置
- solr 基本配置,简单的集成与扩展
- solr入门与配置
- 配置tomcat与solr
- solr配置与使用
- solr安装与配置
- Solr安装与配置
- Solr安装与配置
- solr安装与配置
- Solr与Tomcat配置
- Solr部署与配置
- solr 安装与配置
- Solr requestHandler中的简单配置
- solr的简单配置使用
- android TextView中间删除线显示
- cv::Exception问题
- OC学习篇之---Foundation框架中的NSArray类和NSMutableArray类
- 如何当好一枚交际花,且看汪涵的人际关系学
- OC_04_02
- Solr配置与简单Demo
- 比JDK高效的array equals
- 缓冲技术
- javascript函数式编程要掌握的知识点讲解
- OC_04_03
- 【罗塞塔石碑】—My Lover(One.iso)
- 【详解】简单验证码的解析
- Ajax中 async的作用
- 程序7——一棵二叉树是不是另外一棵二叉树的子结构