solrJ使用样例
2015-08-30 12:44
246 查看
前篇文章我们已经搭建好了一个solr服务器,今天我们看一下solr的client:solrJ,当然,这只是java的。
废话少说,直接上代码:
查询方法:
import java.net.MalformedURLException;
import org.apache.solr.client.solrj.SolrQuery;
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.SolrDocumentList;
public class SolrJSearche {
private static final String SOLR_URL = "http://localhost:8083/solr14/zjm/";
public SolrServer getSolrServer() throws MalformedURLException {
// 远程服务
return new CommonsHttpSolrServer(SOLR_URL);
// 本地服务
// return new EmbeddedSolrServer();
}
public void SolrJSearch(){
try {
SolrServer solrServer = getSolrServer();
} catch (MalformedURLException e) {
e.printStackTrace();
}
}
public void search(String String) throws MalformedURLException{
SolrServer solrServer = getSolrServer();
SolrQuery query = new SolrQuery();
query.setQuery(String);
//新加条件(and的作用对TERM_VAL的6到8折的限制)
//query.addFilterQuery("TERM_VAL:{6 TO 8折}");
//排序用的
//query.addSortField( "price", SolrQuery.ORDER.asc );
//System.out.println("xxxxxxxxxxxxxx");
try {
QueryResponse rsp = solrServer.query(query);
SolrDocumentList docs = rsp.getResults();
System.out.println("文档个数:" + docs.getNumFound());
System.out.println("查询时间:" + rsp.getQTime());
for (SolrDocument doc : docs) {
String name = (String) doc.getFieldValue("name");
String id = (String) doc.getFieldValue("id");
System.out.println(id);
System.out.println(name);
System.out.println(doc.getFieldValue("name_mnecode"));
}
} catch (SolrServerException e) {
e.printStackTrace();
}
}
public static void main(String[] args) throws MalformedURLException {
SolrJSearche sj = new SolrJSearche();
String Query ="name_mnecode:l*";
sj.search(Query);
}
}
增加索引的方法:
import java.io.IOException;
import java.net.MalformedURLException;
import java.util.ArrayList;
import java.util.Collection;
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.request.UpdateRequest;
import org.apache.solr.client.solrj.response.UpdateResponse;
import org.apache.solr.common.SolrInputDocument;
public class AddIndex {
private static final String SOLR_URL = "http://localhost:8083/solr14/zjm/";
public SolrServer getSolrServer() throws MalformedURLException {
// 远程服务
return new CommonsHttpSolrServer(SOLR_URL);
// 本地服务
// return new EmbeddedSolrServer();
}
public void commit() throws SolrServerException, IOException {
SolrServer server = getSolrServer();
server.deleteByQuery("*:*");// delete everything!
SolrInputDocument doc1 = new SolrInputDocument();
doc1.addField("id", "1");
doc1.addField("name", "张民");
doc1.addField("name_mnecode", "zhangming zm");
SolrInputDocument doc2 = new SolrInputDocument();
doc2.addField("id", "2");
doc2.addField("name", "刘俊");
doc2.addField("name_mnecode", "liujun lj");
SolrInputDocument doc3 = new SolrInputDocument();
doc3.addField("id", "3");
doc3.addField("name", "刘俊2");
doc3.addField("name_mnecode", "liuwun2 lw2");
Collection<SolrInputDocument> docs = new ArrayList<SolrInputDocument>();
docs.add(doc1);
docs.add(doc2);
docs.add(doc3);
UpdateRequest req = new UpdateRequest();
req.setAction(UpdateRequest.ACTION.COMMIT, false, false);
req.add(docs);
UpdateResponse rsp = req.process(server);
}
public static void main(String[] args) throws SolrServerException, IOException {
addtest ui = new addtest();
ui.commit();
System.out.println("xxxxx");
}
}
注:这个例子中使用了3个字段:id,name,name_mnecode,这三个字段必须在solr的配置文件中schem.xml增加
另外solrJ所依赖的文件,添加到pom.xml中即可
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-simple</artifactId>
<version>1.5.6</version>
</dependency>
<dependency>
<groupId>org.apache.solr</groupId>
<artifactId>solr-solrj</artifactId>
<version>1.4.0</version>
</dependency>
<dependency>
<groupId>commons-codec</groupId>
<artifactId>commons-codec</artifactId>
<version>1.3</version>
</dependency>
<dependency>
<groupId>commons-httpclient</groupId>
<artifactId>commons-httpclient</artifactId>
<version>3.1</version>
</dependency>
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
<version>1.4</version>
</dependency>
<dependency>
<groupId>org.apache.geronimo.specs</groupId>
<artifactId>geronimo-stax-api_1.0_spec</artifactId>
<version>1.0.1</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>jcl-over-slf4j</artifactId>
<version>1.5.5</version>
</dependency>
<dependency>
<groupId>org.codehaus.woodstox</groupId>
<artifactId>wstx-asl</artifactId>
<version>3.2.7</version>
</dependency>
废话少说,直接上代码:
查询方法:
import java.net.MalformedURLException;
import org.apache.solr.client.solrj.SolrQuery;
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.SolrDocumentList;
public class SolrJSearche {
private static final String SOLR_URL = "http://localhost:8083/solr14/zjm/";
public SolrServer getSolrServer() throws MalformedURLException {
// 远程服务
return new CommonsHttpSolrServer(SOLR_URL);
// 本地服务
// return new EmbeddedSolrServer();
}
public void SolrJSearch(){
try {
SolrServer solrServer = getSolrServer();
} catch (MalformedURLException e) {
e.printStackTrace();
}
}
public void search(String String) throws MalformedURLException{
SolrServer solrServer = getSolrServer();
SolrQuery query = new SolrQuery();
query.setQuery(String);
//新加条件(and的作用对TERM_VAL的6到8折的限制)
//query.addFilterQuery("TERM_VAL:{6 TO 8折}");
//排序用的
//query.addSortField( "price", SolrQuery.ORDER.asc );
//System.out.println("xxxxxxxxxxxxxx");
try {
QueryResponse rsp = solrServer.query(query);
SolrDocumentList docs = rsp.getResults();
System.out.println("文档个数:" + docs.getNumFound());
System.out.println("查询时间:" + rsp.getQTime());
for (SolrDocument doc : docs) {
String name = (String) doc.getFieldValue("name");
String id = (String) doc.getFieldValue("id");
System.out.println(id);
System.out.println(name);
System.out.println(doc.getFieldValue("name_mnecode"));
}
} catch (SolrServerException e) {
e.printStackTrace();
}
}
public static void main(String[] args) throws MalformedURLException {
SolrJSearche sj = new SolrJSearche();
String Query ="name_mnecode:l*";
sj.search(Query);
}
}
增加索引的方法:
import java.io.IOException;
import java.net.MalformedURLException;
import java.util.ArrayList;
import java.util.Collection;
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.request.UpdateRequest;
import org.apache.solr.client.solrj.response.UpdateResponse;
import org.apache.solr.common.SolrInputDocument;
public class AddIndex {
private static final String SOLR_URL = "http://localhost:8083/solr14/zjm/";
public SolrServer getSolrServer() throws MalformedURLException {
// 远程服务
return new CommonsHttpSolrServer(SOLR_URL);
// 本地服务
// return new EmbeddedSolrServer();
}
public void commit() throws SolrServerException, IOException {
SolrServer server = getSolrServer();
server.deleteByQuery("*:*");// delete everything!
SolrInputDocument doc1 = new SolrInputDocument();
doc1.addField("id", "1");
doc1.addField("name", "张民");
doc1.addField("name_mnecode", "zhangming zm");
SolrInputDocument doc2 = new SolrInputDocument();
doc2.addField("id", "2");
doc2.addField("name", "刘俊");
doc2.addField("name_mnecode", "liujun lj");
SolrInputDocument doc3 = new SolrInputDocument();
doc3.addField("id", "3");
doc3.addField("name", "刘俊2");
doc3.addField("name_mnecode", "liuwun2 lw2");
Collection<SolrInputDocument> docs = new ArrayList<SolrInputDocument>();
docs.add(doc1);
docs.add(doc2);
docs.add(doc3);
UpdateRequest req = new UpdateRequest();
req.setAction(UpdateRequest.ACTION.COMMIT, false, false);
req.add(docs);
UpdateResponse rsp = req.process(server);
}
public static void main(String[] args) throws SolrServerException, IOException {
addtest ui = new addtest();
ui.commit();
System.out.println("xxxxx");
}
}
注:这个例子中使用了3个字段:id,name,name_mnecode,这三个字段必须在solr的配置文件中schem.xml增加
另外solrJ所依赖的文件,添加到pom.xml中即可
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-simple</artifactId>
<version>1.5.6</version>
</dependency>
<dependency>
<groupId>org.apache.solr</groupId>
<artifactId>solr-solrj</artifactId>
<version>1.4.0</version>
</dependency>
<dependency>
<groupId>commons-codec</groupId>
<artifactId>commons-codec</artifactId>
<version>1.3</version>
</dependency>
<dependency>
<groupId>commons-httpclient</groupId>
<artifactId>commons-httpclient</artifactId>
<version>3.1</version>
</dependency>
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
<version>1.4</version>
</dependency>
<dependency>
<groupId>org.apache.geronimo.specs</groupId>
<artifactId>geronimo-stax-api_1.0_spec</artifactId>
<version>1.0.1</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>jcl-over-slf4j</artifactId>
<version>1.5.5</version>
</dependency>
<dependency>
<groupId>org.codehaus.woodstox</groupId>
<artifactId>wstx-asl</artifactId>
<version>3.2.7</version>
</dependency>
相关文章推荐
- Solr使用初探——SolrJ的使用
- Disply和Visibility的区别
- Linux系统管理-(3)-Inode
- 阿里云服务器CentOS 5.7(64位)安装配置LAMP服务器(Apache+PHP5+MySQL)
- Python, difference between two ways for removing last elem of list
- JVM性能优化,Java的伸缩性
- Java日志终极指南
- Myeclipse注册码
- 实现简单动画的方法
- 《剑指Offer》面试题:替换空格
- Java 自定义实现 LRU 缓存算法
- 两个div块之间的缺口问题,border与z-index实现
- 在PhpStorm9中与Pi的xdebug进行调试
- Java 自动装箱与拆箱(Autoboxing and unboxing)
- NFS、NAS、SAN、Squid、LVS
- 一个性能较好的JVM参数配置
- Java 8 中所有的包列表及介绍
- 简单
- TFS(Taobao File System)配置dataServer、分区、挂载数据盘
- 高吞吐低延迟Java应用的垃圾回收优化