您的位置:首页 > 其它

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>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: