Я написал программу, которая вставляет элемент, затем он ищет все элементы в хранилище. Таким образом, он находит еще один элемент при каждом запуске программы. Я ожидаю, что смогу прокомментировать вставку и по-прежнему запустить программу, просто найдя материал, который уже вставлен. Всякий раз, когда я это делаю, я получаю исключение «Не удалось выполнить фазу [query_fetch], все осколки не пройдены». Есть идеи?Как правильно инициализировать поиск Elicsearch?
Гипотеза: вставка элемента делает какую-то неявную инициализацию на моем узле. Тем не менее, я просматриваю источник ES, и я не могу понять, что это будет.
try (Node node = NodeBuilder.nodeBuilder().clusterName("tesssst").build().start()) {
try (Client client = node.client()) {
//insert an entry; if this part is removed, the program crashes
client.prepareIndex("movies", "movie", UUID.randomUUID().toString()).setSource(
"{\"title\": \"Lawrence of Arabia\",\"director\": \"David Lean\",\"year\": 1962,\"genres\":"
+ " [\"Adventure\", \"Biography\", \"Drama\"]}").execute().actionGet();
//search all entries
System.out.println("***************");
SearchResponse response = client.prepareSearch("movies")
.setTypes("movie")
.setSearchType(SearchType.QUERY_AND_FETCH)
.setFrom(0).setSize(60).setExplain(true)
.execute()
.actionGet();
SearchHit[] results = response.getHits().getHits();
System.out.println("Current results: " + results.length);
for (SearchHit hit : results) {
System.out.println("------------------------------");
Map<String, Object> result = hit.getSource();
System.out.println(result);
}
System.out.println("***************");
client.close();
}
node.close();
}
Можете ли вы показать мне распечатку вашего '_cluster/health'? Мне удалось воспроизвести это локально, и я хочу, чтобы убедиться, что моя догадка верна. – IanGabes
Я добавил «System.out.println (client.admin(). Cluster(). PrepareHealth (« movies »). Get(). ToString()); перед поиском. – akroy
Когда вставка произошло: "{ "CLUSTER_NAME": "tesssst", "статус": "желтый", "timed_out": ложные, "number_of_nodes": 1, "number_of_data_nodes": 1, " active_primary_shards ": 5, "active_shards": 5, "relocating_shards": 0, "initializing_shards": 0, "unassigned_shards": 5, "delayed_unassigned_shards": 0, "number_of_pending_tasks": 0, " number_of_in_flight_fetch ": 0 }" – akroy