Я пытаюсь начать использовать elasticsearch (будучи долгосрочным пользователем компаса), и у меня возникают довольно серьезные проблемы с основами, что очень расстраивает ,elasticsearch: Не удается найти индексированные данные (узел узла закрыт)
Текущая проблема, с которой я сталкиваюсь, заключается в том, что индексированные данные не отображаются до тех пор, пока узел не будет закрыт. Вот пример моего кода
Node node = nodeBuilder().node();
Client client = node.client();
client.prepareIndex("index1", "type1", "1").setSource("{ \"name\": \"Aaron\"}").execute().actionGet();
client.prepareIndex("index1", "type1", "2").setSource("{ \"name\": \"Andrew\"}").execute().actionGet();
client.prepareIndex("index1", "type1", "3").setSource("{ \"name\": \"Alistair\"}").execute().actionGet();
QueryBuilder queryBuilder = QueryBuilders.wildcardQuery("name", "a*");
SearchRequestBuilder searchRequestBuilder = client.prepareSearch("index1");
searchRequestBuilder.setTypes("type1");
searchRequestBuilder.setSearchType(SearchType.DEFAULT);
searchRequestBuilder.setQuery(queryBuilder);
SearchResponse response = searchRequestBuilder.execute().actionGet();
System.out.println("Response contains " + response.getHits().totalHits() + " hits");
for (SearchHit currentHit : response.getHits())
{
System.out.println(currentHit.getSourceAsString());
}
client.close();
node.close();
Первый раз, когда я запускаю это, он не находит никаких ударов в поиске. Однако, если я запустил его снова - он действительно найдет имена, которые начинаются с буквы «A» (не заставляйте меня начинать с автоматического понижения индексации предметов, но не от поисков, которые стоили мне больше часа).
Если я удаляю закрытие, не имеет значения, сколько раз я запускаю выше, я никогда не нахожу результатов. Однако, если я добавляю теги закрытия, он работает второй раз (каждый раз).
Чувствуется, что что-то связано с буферизацией изменений индекса, которые не покраснели?
Уверен, что у меня отсутствует что-то очевидное и основное. Но я просто не могу на нее наложить.