2013-12-20 2 views
0

я пытаюсь индексировать документы с solrj, это мой код,завершение программы в solrj

import org.apache.solr.client.solrj.SolrServerException; 
import org.apache.solr.client.solrj.impl.*; 
import org.apache.solr.common.SolrInputDocument; 
import java.io.IOException; 

public class index { 

public static void main(String[] args) throws IOException, SolrServerException { 
String url = "http://localhost:8080/solr/document/"; 
HttpSolrServer server = new HttpSolrServer(url); 
server.setMaxRetries(1); // defaults to 0. > 1 not recommended. 
server.setConnectionTimeout(5000); 
server.setSoTimeout(1000); // socket read timeout 
server.setDefaultMaxConnectionsPerHost(100); 
server.setMaxTotalConnections(100); 
server.setFollowRedirects(false); // defaults to false 
SolrInputDocument doc1 = new SolrInputDocument(); 
doc1.addField("id", 23); 
doc1.addField("title", "doc1"); 
doc1.addField("author","Chetan Bhagat"); 
doc1.addField("contents", "I am the best."); 
doc1.addField("date_modified", "12-12-2014"); 
server.commit();  
} 
} 

После запуска консоли на затмение показывает это:

21 декабря 2013 2:07 : 25 AM org.apache.solr.client.solrj.impl.HttpClientUtil createClient INFO: Создание нового клиента HTTP, конфигурации: MaxConnections = 128 & maxConnectionsPerHost = 32 & followRedirects = ложь

Что вызывает это ненормальное прекращение? Я новичок в solr.

+0

Что вы подразумеваете под «аномальным завершением»? Не можете ли вы сохранить документ в Solr? Вы должны предоставить нам более подробные сведения о регистрации, в журнале, который вы предоставляете, отображается только сообщение конфигурации по умолчанию «solr» ... посмотрите на «выходной» журнал Solr. В первом взгляде, похоже, что он не отображает 'maxConnections', который вы указали, но, вероятно, по умолчанию тот, который указан в« solrconfig.xml ». – emgsilva

+0

я проверить, как с запросом: Q = ID: 23, ответ на: numfound = 0, Statictics является: Последнее изменение: 16 минут назад Num Docs: 14 Макс Doc: 16 Исключен Docs: 2 Версия: 495 Количество сегментов: 5 Также для q = *: *, numfound = 14 – user2737359

+0

Я только что заметил, что вам не хватает «добавления» документа к индексу Solr ... Проверьте мой ответ ниже. – emgsilva

ответ

1

Вы, кажется, отсутствует добавление в «документ» на «сервер»:

... 
SolrInputDocument doc1 = new SolrInputDocument(); 
doc1.addField("id", 23); 
doc1.addField("title", "doc1"); 
doc1.addField("author","Chetan Bhagat"); 
doc1.addField("contents", "I am the best."); 
doc1.addField("date_modified", "12-12-2014"); 
server.add(doc1); // **MISSING LINE!!** 
server.commit(); 
... 

Это, вероятно, причина, почему вы не видите документ в индексе Solr. Это пример «добавления документа» в Solr: http://www.solrtutorial.com/solrj-tutorial.html

HTH.

+0

Я добавил заявление позже, но до сих пор документ не отображается при поиске. Я обнаружил, что в статистике обработчика обновлений всякий раз, когда я запускаю программу java, количество коммитов и кумулятивных_аддов увеличивается на 1, значит, это означает, что doc индексируется, но не доступен для поиска? – user2737359

0

URL-адрес http://localhost:8080/solr/document/ не выглядит правильным, откуда вы его взяли? Не существует обработчика по умолчанию для документа ?, если кто-то не настроил ваш файл solrconfig.xml. Чтобы добавить документы, ваш URL должен быть чем-то вроде: "http://localhost:8080/solr". Дополнительную информацию о том, как использовать SolrJ http://wiki.apache.org/solr/Solrj

Обновление: добавьте объект doc1 в сервер.

+0

Я создал ядро ​​с именем: document, do solr/document/представляет это ядро. – user2737359

+0

Хорошо, вы проверили, работает ли ваша сборка «документ». перейдите по адресу http: // localhost: 8080/solr/#/document и увидите, что вы можете просмотреть статистику, затем перейдите по адресу http: // localhost: 8080/solr/#/document/documents и посмотрите, можете ли вы опубликовать тестовый документ , – Arun

+0

извините, но я не понял, что мне нужно проверить? – user2737359

Смежные вопросы