2013-07-23 5 views
0

Привет им работать на нескольких примерах программ для solrj и им возникли проблемы определения, если я подключил его correcttly или not..this мой кодsolrj в Java

import org.apache.solr.client.solrj.SolrServer; 
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.params.ModifiableSolrParams; 

import java.net.MalformedURLException; 

public class SolrExample { 
    public static void main(String[] args) throws MalformedURLException, SolrServerException { 
//SolrServer solr = new CommonsHttpSolrServer("localhost:8983/solr"); 
SolrServer server = new HttpSolrServer("localhost:8983/solr/"); 


ModifiableSolrParams params = new ModifiableSolrParams(); 
params.set("qt", "/spellCheckCompRH"); 
params.set("q", "epod"); 
params.set("spellcheck", "on"); 
params.set("spellcheck.build", "true"); 

QueryResponse response = server.query(params); 
System.out.println("response = " + response); 
    } 
} 

выход выше код: {время = 219,0, sub1 = {время = 125,0, sub1.1 = {время = 0.0}}}

с другой стороны, если им с помощью этого:

 SolrServer solr = new CommonsHttpSolrServer("localhost:8983/solr"); 

сказано, что это depracated ..

им смущен, потому что я могу получить доступ к Solr администратора в моем компьютере через локальный, но я не могу в моей программе ..

большое спасибо, если кто-нибудь может помочь

ответ

1

Вы не должны указать протокол по URL :

SolrServer solr = new CommonsHttpSolrServer("http://localhost:8983/solr");

Я сделал простой тест, и я получаю сообщение об ошибке, если я не делаю так. Однако я использую Solr 3.4 в своем проекте ... Я не получаю «устаревшее» предупреждение, согласно документации, действительно рекомендуется использовать «HttpSolrServer» в более поздних версиях solr (http://lucene.apache.org/solr/3_6_0/org/apache/solr/client/solrj/impl/CommonsHttpSolrServer.html).

+0

я редактировал пример программы и использовать URL вы указывали: SolrServer SOLR = новый CommonsHttpSolrServer ("HTTP: // локальный: 8983/Solr"); , но я все еще получаю устаревшее предупреждение. im using solr 3.6.0, а также попробовал solr 4.2.1 im собирается попробовать solr 3.4..thanks –

+0

вам нужно указать «HTTP: //», я не вижу его в фрагменте кода. В Solr 3.4 CommonHttpSolrServer не устарел, но если вы начинаете использовать Solr, вы должны перейти на более новую версию и использовать HttpSolrServer, как это предлагается в документации. – emgsilva

+0

Это решило вашу проблему, если да, то отметьте как завершено. – emgsilva

2
  • Для Solrj 4.x вы должны использовать HttpSolrServer:
    SolrServer solrServer = новый HttpSolrServer ("http://localhost:8983/solr");
    или "http://localhost:8983/solr/solrCoreName"

  • Bonus, для Solr Cloud, вы можете использовать CloudSolrServer с параметром URL-адрес для Apache Zookeeper:
    SolrServer cloudSolrServer = новый CloudSolrServer ("HTT р: // локальный: 2181");

Проверьте вики-страницу Apache Solr для получения дополнительной информации: wiki.apache.org/solr/FrontPage