2014-02-24 3 views
1

Я следую этому источнику:ElasticSearch - не удалось прочитать запрос данных

Elastic Search Example

и я создал кусок кода:

import static org.elasticsearch.node.NodeBuilder.nodeBuilder; 

import java.util.Date; 
import java.util.HashMap; 
import java.util.Map; 

import org.elasticsearch.client.Client; 
import org.elasticsearch.node.Node; 

public class ElasticSearchAPI { 

    public static void main(String[] args) { 

     Node node = nodeBuilder().clusterName("yourclustername").node(); 
     Client client = node.client(); 

     client.prepareIndex("kodcucom", "article", "1") 
       .setSource(
         putJsonDocument(
           "ElasticSearch: Java API", 
           "ElasticSearch provides the Java API, all operations " 
             + "can be executed asynchronously using a client object.", 
           new Date(), new String[] { "elasticsearch" }, 
           "Huseyin Akdogan")).execute().actionGet(); 

     node.close(); 
    } 

    public static Map<String, Object> putJsonDocument(String title, 
      String content, Date postDate, String[] tags, String author) { 

     Map<String, Object> jsonDocument = new HashMap<String, Object>(); 

     jsonDocument.put("title", title); 
     jsonDocument.put("conten", content); 
     jsonDocument.put("postDate", postDate); 
     jsonDocument.put("tags", tags); 
     jsonDocument.put("author", author); 

     return jsonDocument; 
    } 

} 

Я бегу ElasticSearch с командной строки:

elasticsearch.bat

и он работает правильно:

server

После этого я бегу мой Java-код, и вот бревно из Eclipse, и сервер:

errors

Должен ли я настроить что-то? Я видел несколько учебников, подобных этому, и каждый раз это действительно похожий код, который никогда не работает для меня.

Благодаря

ответ

1

Хорошо, я решил эту проблему. На самом деле проблема заключалась в версиях ElasticSearch Client и ES Java API.

Обновление ES Java API до той же версии, что и ES Client, решило эту проблему.

Больше информации здесь:

Java API 1.x Client

Важно:

Пожалуйста, обратите внимание, что рекомендуется использовать ту же версию на клиенте и кассетные сторон. Вы можете столкнуться с некоторыми проблемами несовместимости, когда смешивает основные версии.

1

Ваш jsonDocument имеет опечатка:

jsonDocument.put("conten", content); 

Должно быть

jsonDocument.put("content", content); 

Я полагаю

+1

Это всего лишь имя ключа в моей HashMap – ruhungry

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