相关文章
更多最近更新
更多SolrJ使用教程
2019-03-27 01:27|来源: 网路
Solr3.x版本
添加数据
import org.apache.solr.client.solrj.SolrServerException; import org.apache.solr.client.solrj.impl.CommonsHttpSolrServer; import org.apache.solr.common.SolrInputDocument; import java.io.IOException; public class SolrjPopulator { public static void main(String[] args) throws IOException, SolrServerException { CommonsHttpSolrServer server = new CommonsHttpSolrServer("http://localhost:8983/solr"); for(int i=0;i<1000;++i) { SolrInputDocument doc = new SolrInputDocument(); doc.addField("cat", "book"); doc.addField("id", "book-" + i); doc.addField("name", "The Legend of Po part " + i); server.add(doc); if(i%100==0) server.commit(); // periodically flush } server.commit(); } } |
查询数据
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.SolrDocumentList; import org.apache.solr.common.params.ModifiableSolrParams; import java.net.MalformedURLException; public class SolrJSearcher { public static void main(String[] args) throws MalformedURLException, SolrServerException { CommonsHttpSolrServer solr = new CommonsHttpSolrServer("http://localhost:8983/solr"); ModifiableSolrParams params = new ModifiableSolrParams(); params.set("q", "cat:electronics"); params.set("defType", "edismax"); params.set("start", "0"); QueryResponse response = solr.query(params); SolrDocumentList results = response.getResults(); for (int i = 0; i < results.size(); ++i) { System.out.println(results.get(i)); } } } |
Solr4.x版本
插入数据
import java.io.IOException; import org.apache.solr.client.solrj.SolrServerException; import org.apache.solr.client.solrj.impl.HttpSolrServer; import org.apache.solr.common.SolrInputDocument; public class SolrjPopulator { public static void main(String[] args) throws IOException, SolrServerException { HttpSolrServer server = new HttpSolrServer("http://localhost:8983/solr"); for (int i = 0; i < 1000; ++i) { SolrInputDocument doc = new SolrInputDocument(); doc.addField("cat", "book"); doc.addField("id", "book-" + i); doc.addField("name", "The Legend of Po part " + i); server.add(doc); if (i % 100 == 0) server.commit(); // periodically flush } server.commit(); } } |
查询数据
import java.net.MalformedURLException; import org.apache.solr.client.solrj.SolrServerException; import org.apache.solr.client.solrj.impl.HttpSolrServer; import org.apache.solr.client.solrj.response.QueryResponse; import org.apache.solr.common.SolrDocumentList; import org.apache.solr.common.params.ModifiableSolrParams; public class SolrJSearcher { public static void main(String[] args) throws MalformedURLException, SolrServerException { HttpSolrServer solr = new HttpSolrServer("http://localhost:8983/solr"); ModifiableSolrParams params = new ModifiableSolrParams(); params.set("q", "cat:electronics"); params.set("defType", "edismax"); params.set("start", "0"); QueryResponse response = solr.query(params); SolrDocumentList results = response.getResults(); for (int i = 0; i < results.size(); ++i) { System.out.println(results.get(i)); } } } |
SolrCloud
添加数据
import java.io.IOException; import org.apache.solr.client.solrj.SolrServerException; import org.apache.solr.client.solrj.impl.CloudSolrServer; import org.apache.solr.common.SolrInputDocument; public class SolrCloudSolrjPopulator { public static void main(String[] args) throws IOException, SolrServerException { String zkHost = "localhost:2181"; String defaultCollection = "collection1"; CloudSolrServer server = new CloudSolrServer(zkHost); server.setDefaultCollection(defaultCollection); for (int i = 0; i < 1000; ++i) { SolrInputDocument doc = new SolrInputDocument(); doc.addField("cat", "book"); doc.addField("id", "book-" + i); doc.addField("name", "The Legend of Po part " + i); server.add(doc); if (i % 100 == 0) server.commit(); // periodically flush } server.commit(); } } |
查询数据
import java.net.MalformedURLException; import org.apache.solr.client.solrj.SolrServerException; import org.apache.solr.client.solrj.impl.CloudSolrServer; import org.apache.solr.client.solrj.response.QueryResponse; import org.apache.solr.common.SolrDocumentList; import org.apache.solr.common.params.ModifiableSolrParams; public class SolrCloudSolrJSearcher { public static void main(String[] args) throws MalformedURLException, SolrServerException { String zkHost = "localhost:2181"; String defaultCollection = "collection1"; CloudSolrServer solr = new CloudSolrServer(zkHost); solr.setDefaultCollection(defaultCollection); ModifiableSolrParams params = new ModifiableSolrParams(); params.set("q", "cat:electronics"); params.set("defType", "edismax"); params.set("start", "0"); QueryResponse response = solr.query(params); SolrDocumentList results = response.getResults(); for (int i = 0; i < results.size(); ++i) { System.out.println(results.get(i)); } } } |
转自:http://www.solr.cc/blog/?p=1296
相关问答
更多添加数据时SolrJ错误(SolrJ error when adding data)
我认为你的urlString不正确,它需要apped你的核心名称,例如: i think your urlString is not correct , it need apped your core name , such as:
索引db通过SolrJ(index db via SolrJ)
如果您只需要能够打开与Solr服务器的连接以进行索引(并且不需要将配置文件与SolrJ项目实际集成),那么这很简单。 首先,您需要打开SolrJ连接,这样做是这样的: HttpSolrServer solrServer = new HttpSolrServer("http://localhost:8983/solr");
另一个选择是利用Spring Data Solr的solr模式,并使Solr服务器bean执行以下操作: <solr:solr-server id="fullSearchIn
...
solrj RealTime得到(solrj RealTime get)
由于RealTime Get是使用备用requestHandler实现的,因此您只需要在SolrQuery上使用setRequestHandler()方法,将"/get"作为处理程序名称。 有关完整示例,请参阅Solr源中此SolrExampleTests.java文件中的testRealTimeGet()方法。 这是该文件的片段: SolrQuery q = new SolrQuery();
q.setRequestHandler("/get");
q.set("id", "DOCI
...
在Eclipse上运行SolrJ(Running SolrJ on Eclipse)
好的,这意味着另类: A)你正在从错误的类中“运行 - - >> Java应用程序”。 打开包含main的类,右键单击它并选择“Run as Java Application” B)你的main方法有一个错误的签名(因此不是一个有效的主方法) - Ok so that means in alternative: A) your're doing "run as -->> Java application" from the wrong class. Open then class that con
...
关于SolrJ范围查询的问题?(A question about SolrJ range query?)
您可以在SolrQuery类上使用addFilterQuery()方法 。 只需按原样传递过滤器查询(“ x:[10 TO 100] AND y:[20 TO 300] ”) You can use the addFilterQuery() method on the SolrQuery class. Just pass the filter query as is ("x:[10 TO 100] AND y:[20 TO 300]")
Solrj API /集合示例(Solrj API/Example for collections)
import org.apache.solr.client.solrj.impl.CloudSolrServer;
import org.apache.solr.common.SolrInputDocument;
CloudSolrServer server = new CloudSolrServer("localhost:9983");
server.setDefaultCollection("collection1");
SolrInputDocument doc = new SolrInp
...
Solrj查询响应(Solrj query Response)
谢谢Perikli,但它已经整理好了。 代码如下: SolrServer solrServer = new HttpSolrServer("http://localhost:8983/solr");
QueryResponse qResponse = solrServer.query(queryForFecthing);
实际上在创建QueryResponse对象时得到异常,即qResponse ,我认为这是因为我作为参数传递的查询(即上面是' queryForFecthing ')。 但这是
...
如何使用solrj使用拼写检查进行查询(How can I use solrj to do a query with spellcheck)
您可以通过以下方式指定所有参 query.setParam("spellcheck", "true");
query.setParam("spellcheck.q", query);
You can specify all parameters via: query.setParam("spellcheck", "true");
query.setParam("spellcheck.q", query);
使用SolrJ索引文档(Indexing document with SolrJ)
您需要在文档索引过程完成后提交。 因此,如果您重新启动solr,它将执行自动提交。 如果你不想重启Solr。 你可以试试 重新加载核心(请参阅下面的URL,根据您更改URL名称) http://127.0.0.1:8080/solr/admin/cores?action=RELOAD&core=core1 要么 使用solr.commit(); 在你的代码中 You need to commit after document indexing process is done. so if you
...
Solr / Solrj分页(Solr/Solrj pagination)
在服务器上执行查询之前,客户端不会知道你在服务器端设置了什么,对吧? 所以他们全都是空的并不奇怪。 要实现分页,您需要客户端的两个参数 - 页码和每页的项目数量。 一旦你得到了这两个,你可以在客户端构建你的SolrQuery,如下所示: SolrQuery query = new SolrQuery(searchTerm);
query.setStart((pageNum - 1) * numItemsPerPage);
query.setRows(numItemsPerPage);
// exe
...